【发布时间】:2017-11-23 19:22:06
【问题描述】:
所以我想在运行 powershell 脚本时在主机中显示一个简单的“这是我们要做的”编号。我创建了以下内容来解决这个问题:
$musicList = Get-ChildItem "C:\Users\rlyons\Music" -Recurse -File | Select-Object FullName
$outfile = @{}
$num = 1
foreach ($sound in $musicList) {
$file = $sound.FullName.ToString()
$md5 = Get-FileHash $file -Algorithm MD5
$outFile.$file += $md5.Hash
Write-Output "Processed file $num"
$num ++
}
这很好用!除了它给了我:
Processed file 1
Processed file 2
Processed file 3
Processed file 4
Processed file 5
等等等等。我想要的是每次处理文件时屏幕都清空,所以我只想看到在写入主机的行尾所处理文件的数量变化。
我尝试在$num ++ 之后以及在foreach 循环的开始处添加旧的Clear-Host,但我得到的只是一条闪烁的线,有时是部分可辨认的。是的,这取决于文件的处理速度,但我想知道这是否有技巧?让Processed file 位在屏幕上持续显示,但数字向上递增?
如果它不清除屏幕会更好,这样您就可以看到所有以前写入的输出但刷新这一行?这可能吗?
注意:我正在 VS Code 中尝试这个,Powershell 5.1
【问题讨论】:
-
试试
Write-Progress。 -
omfg,我怎么没想到。我以前也用过...
标签: powershell