奇妙に聞こえるかもしれませんが、コマンドレットが詳細モードまたはデバッグ モードを簡単に知る方法はありません。関連する質問を見てください:
コマンドレットは、実際に WriteVerbose() を呼び出す必要があるタイミングをどのように判断しますか?
完璧ではありませんが、実際には妥当なオプションの 1 つは、独自のコマンドレット パラメーター (たとえば、$MyVerbose
and $MyDebug
) を導入し、コードで明示的に使用することです。
function DoStuff {
[CmdletBinding()]
param
(
# Unfortunately, we cannot use Verbose name with CmdletBinding
[switch]$MyVerbose
)
process {
if ($MyVerbose) {
# Do verbose stuff
}
# Pass $MyVerbose in the cmdlet explicitly
New-Item Test -Type Directory -Verbose:$MyVerbose
}
}
DoStuff -MyVerbose
アップデート
スイッチのみが必要な場合(たとえば、詳細レベルの値ではない) $PSBoundParameters
、この回答の最初の部分で提案されている方法よりも(追加のパラメーターを使用して)アプローチする方がおそらく優れています。
function DoStuff {
[CmdletBinding()]
param()
process {
if ($PSBoundParameters['Verbose']) {
# Do verbose stuff
}
New-Item Test -Type Directory -Verbose:($PSBoundParameters['Verbose'] -eq $true)
}
}
DoStuff -Verbose
とにかくすべてが完璧ではありません。より良い解決策があれば、私は本当にそれらを自分で知りたいです.