#3 ログ出力で業務効率アップ_2

Powershellのログの画像 PowerShell

本日のお題は前回に続き「ログ出力」です。
ログ出力とは言ってもログの出力方法ではなく、ログ出力されたエラー内容についてです。
ログ出力ができるようになってプログラムの悲鳴が聞こえても、どうしてあげればいいのかわからなければ助けようがありません。
というわけで今回はログの対処を学んでいきましょう。

エラータイプ 説明 例の対処法修正コード
ターミネーティングエラースクリプトの実行を即座に停止する重大なエラー存在しないファイルへのアクセス:Get-Content -Path “C:\nofile.txt”Get-Contentの前にifとTest-Pathでファイルがあるか確認を入れよう
また取得しようとしているファイルが無いときのelse文も追加するとわかりやすくなる
if(Test-Path “C:\nofile.txt”){
Get-Content処理
}else{
Write-Output “ファイルがありません。”
}
ノンターミネーティングエラーエラーが発生してもスクリプトは続行される無効なパス指定:Get-ChildItem -Path “C:\InvalidPath”これも上記と同様に対処
またはSet-LocationやGet-Location等を使用しパスを確実にして取得する
Set-Location ./InvalidPath
$InvalidPath = Get-Location
Get-ChildItem -Path $InvalidPath
パースエラー構文ミスなどでスクリプトが解釈できない引用符の閉じ忘れ:Write-Host “Hello WorldWindowsPowerShellISEなど専用のエディターを用いることでエラー状況に気づきやすくする不適切なコード箇所は赤波線等視覚でわかりやすい
実行時エラー実行中に発生する予期しないエラーゼロ除算:$result = 10 / 0例で言うと、割る数字に対してデータの値のバリデーションをしっかりとりましょう$div = 0
if($div -ne 0){
$result = 10 / $div
}
ロジックエラー意図した動作にならないが、構文的には正しい条件分岐の誤り:if ($age -lt 18) { Write-Host “成人です。” }($ageが20でも表示されない)エディタでif文の中身がTRUEまたはFALSEを正しく出力しているかを確認しましょう-le : less than(<)のこと
if($age -gt 18){
Write-Host “成人です。”
}
権限不足によるエラー管理者権限が必要な操作で発生Set-ExecutionPolicy RemoteSigned を通常ユーザーで実行権限問題は会社での業務でよく起こります。ファイルの権限を確かめましょうファイルを一度利用者の
環境で保存し直すと治ることもあります
実行ポリシー制限スクリプトの実行が許可されていないスクリプトの実行が無効になっています というメッセージこちらも上記と同様です。ファイルを一度利用者の
環境で保存し直すと治ることもあります
コマンドのタイプミスコマンドレット名の誤りGet-Itme(正しくは Get-Item)綴り間違いはよくあります。焦らずタイピングしましょう。

いかがだったでしょうか。
まだ当ブログで紹介していないプログラムもあるので、何を言っているかよくわからない人はまた後で見返すことで理解できることも多々あります。
数回のエラーでプログラムをあきらめずに、トライ&エラーで楽しくプログラミングしましょう!

コメント

タイトルとURLをコピーしました