私はいくつかのローカルコンピュータで動作するスクリプトを持っていますが、エラーハンドリングは行っていません。私はpowershellでエラー処理を一切していないので、私はここで全然ノブです。私はそれについて何かを読んだが、正直なところ、素早く簡単な答えを探しているだけです。Powershell:スクリプトのエラー処理
Q:スクリプトを重くしないようにできるだけ小さなコードでtry/catchのようなものがありますか?
私はいくつかのローカルコンピュータで動作するスクリプトを持っていますが、エラーハンドリングは行っていません。私はpowershellでエラー処理を一切していないので、私はここで全然ノブです。私はそれについて何かを読んだが、正直なところ、素早く簡単な答えを探しているだけです。Powershell:スクリプトのエラー処理
Q:スクリプトを重くしないようにできるだけ小さなコードでtry/catchのようなものがありますか?
はい、のtry/catch /最後にPowerShellのv2の中で提供されています:
Try{
<main code here>
}
Catch{
write-host $_ #Using the reserved $_ variable which should contain the error string
}
Finally{
<clean up code here - will execute regardless>
}
あなたは、PowerShellは、あなたがトラップ構造体を使用する必要がありますV1を使用するように制限している場合。
Powershell 2.0は、try、catch、finallyを持っています。 http://technet.microsoft.com/en-us/library/dd315350.aspxを参照してください。次のようなエラートラップを使用して、コマンドライン型のエラー処理を行うこともできます。http://www.informit.com/articles/article.aspx?p=729515&seqNum=5
私はpowershell v2を使用しています。 私がこのコードで行ったことは、すべてのスクリプトをTry {}に貼り付けて、try {}内に新しい行を書き込んだときにすべての例外を捕捉するようにcatchを不特定のままにしました。 sdgsf " " $ username = gc env:usernamejghc "(私はコマンドの最後にjiberishを書きました) エラーが発生しました:Get-内容:パス 'Env:\ usernamejghc'が存在しないため見つかりません。 私はこのテーマについてもう少し詳しく読んでいますが、このエラーを処理するための提案はありますか? – haakonlu
あなたは$ env:usernamejghcを意味します。メッセージは、何が起こるかを正確に伝えます。 –
はい、なぜキャッチブロックはキャッチしませんか?このエラーがそれをエスケープすれば、私は他もできると思いますか? – haakonlu