我在 PowerShell 中有一個帶有串列和作業的簡單腳本
$file_bme1 = "C:\file1.txt"
$file_bme2 = "C:\file2.txt"
$scriptList =@(
'C:\Program Files\PuTTY\collection1.ps1'
'C:\Program Files\PuTTY\collection2.ps1'
);
sleep -seconds 10
Write-Output "Script starting..."
foreach ($i in 1..1){
Write-Output "Loop $i"
$jobs=foreach($script in $scriptList){
Start-Job -ScriptBlock {& $using:script}
}
$jobs | Wait-Job | Receive-Job 2>$null
Write-Output "End of Loop $i"
sleep -seconds 30
}
Write-Output "Script completed."
我想將變數 $file_bme1 和 $file_bme2 傳遞給下標(collection1.ps1 和 collection2.ps1),但我遇到了如何實作這一點的問題。有什么推薦嗎?
uj5u.com熱心網友回復:
聽起來您想串聯列舉兩個陣列(集合) ,即將一個集合中的第一個元素與另一個集合中的第一個元素一起處理,依此類推。
(不幸的是)沒有直接的方法可以做到這一點,但您可以使用索引:
# Create a second list that parallels $scriptList
$fileList = $file_bme1, $file_bme2
# Loop over the list (array) indices and pass the corresponding
# elements from the two lists to Start-Job
$jobs = foreach ($i in 0..($scriptList.Count-1)) {
# Invoke script $scriptList[$i] with $fileList[$i] as its argument.
Start-Job -ScriptBlock { & $args[0] $args[1] } -Args $scriptList[$i], $fileList[$i]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428283.html
標籤:电源外壳
