powershell - 为什么 Write-Verbose 消息不会从条件中出现
问题描述
我正在尝试接收每个排序步骤的详细消息并使用-Verbose
密钥运行我的脚本,但我没有收到来自条件(循环)的任何详细消息。只有当我在条件句之外调用它们时,我才会收到我的消息。请帮忙
[CmdletBinding()]
param()
set-location "\test folder"
$listOfItems = Get-ChildItem | Select-Object -Property Name, Mode, LastWriteTime, @{label = "FileSize (MB)";expression = {$_.Length/1024/1024}}
$bufferItem = 0
for ($i = $listOfItems.Length - 1; $i -eq 0; $i--) {
for ($j = 0; $i -lt $i; $j++) {
if ($listOfItems[$j]."FileSize (MB)" -gt $listOfItems[$j + 1]."FileSize (MB)") {
Write-Verbose -Message "Transfer the value of the buffer variable to the element below the list"
continue
}
elseif ($listOfItems[$j]."FileSize (MB)" -lt $listOfItems[$j + 1]."FileSize (MB)") {
$bufferItem = $listOfItems[$j]
$listOfItems[$j] = $listOfItems[$j + 1]
$listOfItems[$j + 1] = $bufferItem
}
Write-Verbose -Message "Transfer the value of the buffer variable to the element below the list"
}
}
解决方案
您的内部循环条件中有一个错误:
for ($j = 0; $i -lt $i; $j++) {
由于$i -lt $i
永远不会计算为$true
,因此内部循环体将永远不会执行,也Write-Verbose
不会到达任何语句。
修复循环条件,您会发现Write-Verbose
在条件语句中工作得非常好。
推荐阅读
- python - 如何在 R 中另一个更大的字符串列表中获取给定列表的字符串的频率?
- swift - Xcode:如何在控制台输出中打印彩色 PRINT 语句?
- cuda - CUDA: 调用推力::for_each_n 后推力变慢::减少
- javascript - 在 templateUrl 中获取路径变量
- java - 如何分别检索时间字段?
- asp.net - Web 应用程序中的 Microsoft InkCanvas
- javascript - Base 64转换错误角度js
- sql - 如何在 vb.net 中的数据库中显示 msg 中的值
- reactjs - favicon 不显示在反应应用程序浏览器选项卡中
- java - 无法创建请求的服务 [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment](已更新)