为什么写入详细消息不从条件中显示



我试图接收每个排序步骤的详细消息,并使用-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在条件语句中工作得很好。

相关内容

  • 没有找到相关文章

最新更新