デバッグ出力を含むログファイルを書き込もうとしています。順次実行では問題なく動作しますが、baseapplication を複数のインスタンスで開始するとすぐにエラーが発生します。
Der Prozess kann nicht auf die Datei zugreifen, da ein anderer Prozess einen Teil der Datei gesperrt hat. : 'B:\Logfiles\Startup.log' 別のプロセスによってロックされているため、プロセスはファイルにアクセスできません。
そのため、ファイルがロックされている場合に再試行するために、do - try - catch コンストラクトを実行しようとしました。しかし、何らかの理由でこれは機能していません:(
do{
$Failed = $false
Try{
Write-Output "C:\KFZBooth\Software\02_remove.bg\AIBackgroundRemove.exe" -ArgumentList '"batch"',`"$Original`",'""',`"$AIAusgabepfad\$Originaldatei$Originaltyp`" | Out-file $StartUpLog -append
} catch {
$Failed = $true
Write-Host "RETRY Reduce Credit"
Write-Host $_.Exception.Message
Write-Host $_.Exception.ItemName
Write-Output "Logproblem im Startup.log - RETRY" | Out-file $UsageLog -append
}
} while ($Failed)
ログファイルを書き込む、またはファイルのロックが解除されるのを待つ、より良い方法はありますか?