我試圖使用PowerShell的進度條和宣傳的-status參數不工作(或我不正確地閱讀文檔。字符串在PowerShell中進度未顯示
爲了簡單起見,假設我有一個集合:
@("red", "green", "blue")
...我有另一個它通過收集迭代但是,當它遍歷,處理需要很長的時間的方法所以,我想通過把給地位給用戶。在迴路中撥打progressBar($i, $s)
。
有對進度代碼:
function progressBar ($count, $color) {
Write-Progress -Activity "My Progress Bar" -status "Doing stuff on $color" -percentComplete ($count/$totalItems * 100)
}
這是對應於:
在這裏筆者使用這個例子:
-status "Found Service $i"
但是當我運行我的腳本,沒有什麼出現在「做東西之後」 - 它是空白的!
我一直認爲+是在PS連接...但是這樣做-status "Doing stuff on " + $color
失敗!
發佈前,我讀了這一點:
How do I concatenate strings and variables in PowerShell?
...並使用$($color)
的建議,使該cmdlet失敗都在一起。
那麼,我怎樣才能讓我的整個字符串出現在-status中,而不是放掉$ color部分?
謝謝!
============================================== =====
再次您好......我在下面添加@BenH和@ Persistent13的全部代碼。
$a = @("red", "green", "blue")
$counter = 1
$totalItems = $a.Count
foreach ($color in $a) {
Write-Host $color "`n"
Start-Sleep -s 3
$counter += 1
progressBar $counter, $color
}
function progressBar ($i, $s) {
Write-Progress -Activity "My Progress Bar" -status "Doing stuff on $s" -percentComplete ($i/$totalItems * 100)
}
沒有看到您的完整代碼,這似乎是一個範圍界定問題。你可以發佈你的代碼或一個最小可行的例子來證明這個問題嗎? – Persistent13
你應該包含你如何調用你的函數的代碼。 – BenH
使用'progressBar $ i $ s'調用它,而不是'progressBar($ i,$ s)' –