さて、ここに私がやろうとしていることの疑似コードがあります:
Function DoThings() {
$OneJob = {
### things...
# I want to capture the STDOUT *and* STDERR of these three commands
A_Command >> "logfile.log" 2>&1
B_Command >> "logfile.log" 2>&1
C_Command >> "logfile.log" 2>&1
}
$params = @{ }
For ($i=1; $i -lt 100; $i++) {
### Manipulate $params here
Start-Job $OneJob -ArgumentList $params
}
}
ただし、単純に上記を実行すると、同時に実行されている別のジョブによって「logfile.log」が開かれているように見えるため、いくつかのジョブがエラーで終了しました。
では、「logfile.log」ファイルへの書き込み時に、すべてのジョブが互いの靴を踏まないようにするにはどうすればよいでしょうか?