0

デバッグ出力を含むログファイルを書き込もうとしています。順次実行では問題なく動作しますが、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)

ログファイルを書き込む、またはファイルのロックが解除されるのを待つ、より良い方法はありますか?

4

1 に答える 1