目次
今回はPowerShellコマンドレットの高度なパラメータに関する知識を解説しますので、PowerShellを学習する皆さんのお役に立てれば幸いです。
1. 高度なパラメータとは何ですか?
いわゆる高度なパラメータは、コマンドの実行を完了するだけでなく、他の高度な機能 (コマンドの実行に関する情報の表示、エラー メッセージの処理、コマンド警告の処理など) も提供できるパラメータです。New、Set、Remove などの最も一般的に使用される動詞コマンドは、高度なパラメータをサポートしています。以下では、これらの高度なパラメータを 1 つずつ紹介します。
2. 詳細パラメータ
Verbose パラメータは主に、関数実行中に Write-Verbose で書き込まれた関連情報を表示するために使用され、コマンド実行中に書き込みがあった場合はフィードバック情報が出力され、それ以外の場合は情報が出力されません。
次のコマンドを入力します
get-childitem
get-childitem -verbose
2 つによって出力される情報は同じであることがわかります。これは、関数の実行プロセス中に関連する情報が書き込まれていないことを示しています。
次に、ファイル作成コマンドを実行します
追加の出力情報
详细信息: 正在目标“目标: D:\logs\端午节2.txt”上执行操作“创建文件”。
概要: 通常、取得操作のコマンド関数の実行中に関連情報は書き込まれません。通常、対応する運用コマンドの機能(作成、変更、削除)に情報が書き込まれます。
3. デバッグパラメータ
Debug パラメーターは主に、関数の実行中に Write-Debug を通じて書き込まれた関連情報を表示するために使用されます。このパラメーターはデフォルトでは有効になっていないため、実行コマンドに -Debug パラメーターを追加して有効にする必要があります。
Verbose と同様に、対応するデバッグ情報出力がない場合、情報は出力されません。このパラメーターがオンで、コマンド実行中にパラメーターのデバッグが含まれる場合、出力結果は停止し、次のステップを実行するための人間の介入を待ちます。これはプログラマーの通常のコードのデバッグに似ていますが、すべての実行コードを一度に確認できない点が異なります。
詳細は以下の通りです
ファイルを作成して -debug パラメータを追加すると、確認プロンプトが表示されますが、その逆は表示されません。
PS D:\logs> remove-item 端午节2.txt -debug
确认
是否确实要执行此操作?
正在目标“D:\logs\端午节2.txt”上执行操作“删除文件”。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“Y”): y
PS D:\logs> new-item 端午节2.txt
目录: D:\logs
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2023/6/24 7:23 0 端午节2.txt
PS D:\logs> remove-item 端午节2.txt
4. ErrorActionパラメータ
ErrorAction パラメーターは主に、コマンドやスクリプトの実行時にエラーが発生した後の操作を指定するために使用されます。PowerShell 環境の場合、ErrorActionPreference パラメーターは、エラー発生後の操作を指定するためにデフォルトでグローバルに使用されます。デフォルトのパラメーターをオーバーライドできます。使用要件を満たすには、ErrorAction パラメーターを使用します。
ErrorAction は、エラーコマンドの操作メソッドを提供します。
- 続行: エラー情報は $Error 変数に記録され、コマンドは実行を続行します。
- 無視: エラーを無視し、エラー情報を記録せずに実行を続行します。
- 問い合わせ: 実行中にエラーが報告された後、ユーザーは実行を続行するかどうかを尋ねられ、エラー情報は $Error 変数に記録されます。
- SlientContinue: コマンド実行中にエラーが発生しました。実行は停止せず、エラー情報も表示されません。エラー情報は $Error 変数にも記録されます。
- 停止: コマンドの実行中にエラーが発生した場合、実行は直ちに停止され、後続のコードは実行されません。
存在しないファイルを削除する例は次のとおりです。
最初に実行
remove-item 端午节2.txt -ErrorAction Ignore
ここでは Ignore パラメーターが指定されているため、エラー メッセージは出力されず、$Error 変数にも記録されません。
そして実行します
remove-item 端午节2.txt -ErrorAction Continue
以下のエラーメッセージを出力する
remove-item : 找不到路径“D:\logs\端午节2.txt”,因为该路径不存在。
所在位置 行:1 字符: 1
+ remove-item 端午节2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (D:\logs\端午节2.txt:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
$Error コマンドを再度実行します。
$Error
エラーメッセージが出力されました
remove-item : 找不到路径“D:\logs\端午节2.txt”,因为该路径不存在。
所在位置 行:1 字符: 1
+ remove-item 端午节2.txt -ErrorAction Continue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (D:\logs\端午节2.txt:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
特定の実行は次のスクリーンショットで確認できます。
もちろん、それ以外の場合は、自分で試してみることもできます。次の記事では、引き続き他の高度なパラメータを紹介します。
5. まとめ
PowerShell コマンドレットの詳細パラメーターは、PowerShell を学習する上で非常に重要な基礎知識であり、その後の運用や保守にも非常に重要であるため、さらに練習して理解を深めていく必要があります。