2017-06-22 13 views
-1

私は外部テキストファイルからファイルを削除できるスクリプトを作成中です。スクリプトはすごくうまくいきましたが、今は外部のテキストファイルにエラーを出力することで改善したいと思います。Try/Catchを使用した出力エラー

私はtryとcatchで試しましたが、なぜ動作しないのかわかりません。ここでは、関連するPS1のコードは次のとおりです。

$LogFile = "log.txt" 
$ErrorFile = "error.txt" 

Get-ChildItem -Path (Get-Content liste.txt) | 
    ft FullName -HideTableHeaders | 
    Out-File $logfile -Append 

foreach ($i in Get-Content liste.txt) { 
    try { 
     Get-ChildItem -Path $i -Include *.* -Recurse | Remove-Item 
     Write-Output "tout est supprimé" 
    } catch { 
     Write-Output "Something's wrong" 
    } 
} 
+0

-ErrorAction Stopを追加する必要があります。最終的なブロックに含まれていない限り、キャッチ後にコードを持つべきではありません。 – Christopher

+0

たとえエラーがあっても、私のキャッチ後にコードを削除しても、スクリプトは動作しますが、私の試行用のメッセージしか表示されません。 –

答えて

0

あなたは間違ってのtry/catchブロックを使用しているget-childitem

+0

ありがとうございます!!完璧に動作します。しかし、今では、 "permission denied"(IOException)のような終了しないエラーをキャッチしたい場合、それは動作せず、succesメッセージが表示されます。私はtry/catchが非終了エラーをキャッチできないのを知っていますが、まだエラーを表示するソリューションはありますか? –

関連する問題