7
11

More than 3 years have passed since last update.

PowerShell の -Verbose と -Debug 引数

Last updated at Posted at 2020-03-24

概要

PowerShellでスクリプトを作成すると、VerboseとDebug引数でスクリプトの動作が見えるようにすることが簡単にできるので、メモしておきます。
まず、PowerShellの引数に関してはわかりやすくまとまった記事があるので、参考してください。

Verbose 引数

PowerShellの-Verboseスイッチ引数をつけて実行すると詳細出力ができるようになります。

verbose-test.ps1

[CmdletBinding()]
param()

Write-Verbose '詳細出力'
Write-Output '基本出力'

実行

PS C:\PowerShell> .\verbose-test.ps1
基本出力

PS C:\PowerShell> .\verbose-test.ps1 -Verbose
詳細: 詳細出力
基本出力

Debug 引数

PowerShellの-Debugスイッチ引数をつけて実行するとデバック出力と確認ができるようになります。

debug-test.ps1

[CmdletBinding()]
param()

Write-Output '基本出力'
Write-Debug 'デバック出力'

実行

PS C:\PowerShell> .\debug-test.ps1
基本出力

PS C:\PowerShell> .\debug-test.ps1 -Debug
デバッグ: デバック出力

確認
この操作を続行しますか?
[Y] はい(Y)  [A] すべて続行(A)  [H] コマンドの中止(H)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y
基本出力

VerboseとDebug 引数の組み合わせ

PowerShellの-Verbose-Debugスイッチ引数をつけて実行すると詳細出力及びデバック出力と確認ができるようになります。

verbose-debug-test.ps1

[CmdletBinding()]
param()

Write-Verbose '詳細出力'
Write-Output '基本出力'
Write-Debug 'デバック出力'

実行

PS C:\PowerShell> .\verbose-debug-test.ps1
基本出力

PS C:\PowerShell> .\verbose-debug-test.ps1 -Verbose
詳細: 詳細出力
基本出力

PS C:\PowerShell> .\verbose-debug-test.ps1 -Debug
デバッグ: デバック出力

確認
この操作を続行しますか?
[Y] はい(Y)  [A] すべて続行(A)  [H] コマンドの中止(H)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y
基本出力

PS C:\PowerShell> .\verbose-debug-test.ps1 -Verbose -Debug
詳細: 詳細出力
デバッグ: デバック出力

確認
この操作を続行しますか?
[Y] はい(Y)  [A] すべて続行(A)  [H] コマンドの中止(H)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y
基本出力

実装するには

上記のコード例で書いておきましたが、CmdletBinding一行を追加すれば使えるようになります。
PowerShellのコマンドレット(Cmdlet)は .NET Framework または .NET Core の C#言語で記述し、コンパイルされていますが、CmdletBindingを使うことによってコマンドレットのように機能させることができます。なので-VerboseDebug以外に-WhatIfまたは-Confirmスイッチ引数も使うことができます。

[cmdletbinding()]
Param(
    # パラメータ
)
# スクリプト
7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11