我试图在内部ForEach循环中使用在外部ForEach循环中创建的变量.该值不会像我预期的那样通过,并且始终为null.
注意$ server的值总是为null你能告诉我为什么以及如何修复?
$Srvrs = "SVR1";
$Srvrs | ForEach-Object {
$server = $_;
Write-Host "Server value in outer Foreach:" $server;
$sourceFilesLoc = "D:\Test\SetupSoftwareAndFiles"
$sourceFiles = Get-ChildItem -LiteralPath $sourceFilesLoc;
$sourceFiles | ForEach-Object {
Start-Job -InputObject $server -ScriptBlock {
Write-Host "Server value in inner Foreach:" $server;
}
}
}
Run Code Online (Sandbox Code Playgroud)
通过参数传递-ArgumentList参数,例如:
Start-Job -InputObject $server -ScriptBlock {param($svr)
Write-Host "Server value in inner Foreach:" $svr;
} -ArgumentList $server
Run Code Online (Sandbox Code Playgroud)
这是一个使用的简单示例-ArgumentList:
PS> $server = 'acme'
PS> $job = Start-Job {param($svr) "server is $svr"} -ArgumentList $server
PS> Receive-Job $job
server is acme
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7435 次 |
| 最近记录: |