私は初心者です。dry-run は、テストするパラメータを作成するのに非常に便利です。簡単な方法で使用する方法を誰か教えてもらえますか? 私はそれをグーグルで検索しましたが、その使用に関する結果はほとんどありません。
どうもありがとうございました
私は初心者です。dry-run は、テストするパラメータを作成するのに非常に便利です。簡単な方法で使用する方法を誰か教えてもらえますか? 私はそれをグーグルで検索しましたが、その使用に関する結果はほとんどありません。
どうもありがとうございました
-WhatIfパラメーターを明示的に指定します。
rm foo.txt -WhatIf
結果:
What if: Performing operation "Remove File" on Target "C:\temp\foo.txt".
SupportsShouldProcess
-WhatIf
属性は、サポートされているコマンドレットに自動的に伝播します。
function do-stuff
{
[CmdletBinding(SupportsShouldProcess=$True)]
param([string]$file)
Remove-Item $file
}
do-stuff foo.txt -WhatIf
結果:
What if: Performing operation "Remove File" on Target "C:\temp\foo.txt".
ShouldProcess()
メソッドを明示的に使用して、-WhatIf
渡されたかどうかを判断します。
function do-stuff
{
[CmdletBinding(SupportsShouldProcess=$True)]
param([string]$file)
if ($PSCmdlet.ShouldProcess($file)) {
Write-Host "Deleting file"
Remove-Item $file
}
}
do-stuff foo.txt -WhatIf
結果:
What if: Performing operation "do-stuff" on Target "foo.txt".
SupportsShouldProcess
-WhatIf
属性はネストされた関数に自動的に伝播します。
function do-stuff
{
[CmdletBinding(SupportsShouldProcess=$True)]
param([string]$file)
if ($PSCmdlet.ShouldProcess($file)) {
Write-Host "Deleting file"
Remove-Item $file
}
inner "text"
}
function inner
{
[CmdletBinding(SupportsShouldProcess=$True)]
param([string]$s)
if ($PSCmdlet.ShouldProcess($s)) {
Write-Host "Inner task"
}
$s | out-file "temp9.txt"
}
do-stuff foo.txt -WhatIf
結果:
What if: Performing operation "do-stuff" on Target "foo.txt".
What if: Performing operation "inner" on Target "text".
What if: Performing operation "Output to File" on Target "temp9.txt".
残念ながら、-WhatIfは、別のモジュールで定義された関数に自動的に伝播されません。このための説明と回避策については、Powershell:-whatifを取得して別のモジュールのコマンドレットに伝達する方法を参照してください。
おそらく、コマンドレットの-WhatIf
およびパラメータを参照しています。-Confirm
それらについては、次の場所で読むことができますGet-Help about_commonParameters
。
リスク管理パラメータの説明
-WhatIf[:{$true | $false}]
コマンドを実行する代わりに、コマンドの効果を説明するメッセージを表示します。
WhatIf パラメーターは
$WhatIfPreference
、現在のコマンドの変数の値をオーバーライドします。$WhatIfPreference
変数のデフォルト値 は0
(無効) であるため、WhatIf パラメーターがないと WhatIf 動作は実行されません。詳細については、次のコマンドを入力してください。get-help about_preference_variables
有効な値:
$true
(-WhatIf:$true
)。と同じ効果があり-WhatIf
ます。
$false
(-WhatIf:$false
)。$WhatIfPreference 変数の値が 1 の場合に生じる自動 WhatIf 動作を抑制します。たとえば、次のコマンドは、コマンドで
WhatIf
パラメーターを 使用します。Remove-Item
PS> remove-item date.csv -whatif
Windows PowerShell は、項目を削除する代わりに、実行する操作と影響を受ける項目を一覧表示します。このコマンドは、次の出力を生成します。
What if: Performing operation "Remove File" on Target "C:\ps-test\date.csv".
-Confirm[:{$true | $false}]
コマンドを実行する前に確認を求めます。
Confirm パラメーターは、現在のコマンドの $ConfirmPreference 変数の値をオーバーライドします。デフォルト値は高です。詳細については、次のコマンドを入力してください。
get-help about_preference_variables
有効な値:
$true
(-WhatIf:$true
)。と同じ効果があり-Confirm
ます。
$false
(-Confirm:$false
)。$ConfirmPreference
の値がコマンドレットの推定リスク以下の場合に発生する自動確認を抑制します。たとえば、次のコマンドは、Remove-Item コマンドで Confirm パラメーターを使用します。アイテムを削除する前に、Windows PowerShell は実行する操作と影響を受けるアイテムを一覧表示し、承認を求めます。
PS C:\ps-test> remove-item tmp*.txt -confirm
このコマンドは、次の出力を生成します。
Confirm Are you sure you want to perform this action? Performing operation "Remove File" on Target " C:\ps-test\tmp1.txt [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):