这段代码打印了一个简单的进程,一次只做一件事:
$files = 1..100
$i = 0
$files | Foreach-Object {
$progress = ("#" * $i)
Write-Host "`r$progress" -NoNewLine
$i ++
Start-Sleep -s 0.1
}
但是如果我想同时并行做两件事,我不能输出进度,因为我不能改变并行循环之外的变量。这没有做需要的事情:
$files = 1..100
$i = 0
$files | Foreach-Object -ThrottleLimit 2 -Parallel {
$progress = ("#" * $i)
Write-Host "`r$progress" -NoNewLine
$i ++
Start-Sleep -s 0.1
}
我找不到一个好的解决方案来访问外部变量,不仅要使用 $Using 读取它,还要更改它。这在 Powershell 7 中是否可行?