2
我正在編寫一個PowerShell腳本,它查找Get-ChildItem
的目錄並將它們傳遞給sdelete
。我想試運行它。我不認爲sdelete
有一個-WhatIf
標誌。有什麼辦法可以達到類似的目的嗎?如何使用whatif標誌運行sdelete
我正在編寫一個PowerShell腳本,它查找Get-ChildItem
的目錄並將它們傳遞給sdelete
。我想試運行它。我不認爲sdelete
有一個-WhatIf
標誌。有什麼辦法可以達到類似的目的嗎?如何使用whatif標誌運行sdelete
您可以通過在你的函數的頂部和if ($pscmdlet.ShouldProcess(something) { }
塊到你的代碼添加SupportShouldProcess
到CmdletBinding語句和落實-WhatIf
和-Confirm
功能。
例如:
Function Remove-WithSDelete {
[CmdletBinding(SupportsShouldProcess,ConfirmImpact="High")]
Param ($File)
Process {
if ($pscmdlet.ShouldProcess($File)) {
& sdelete.exe $File
}
}
}
用法:
PS C:\> Remove-WithSDelete c:\temp -WhatIf
What if: Performing the operation "Remove-WithSDelete" on target "c:\temp".
的ConfirmImpact
部分是可選的,被用於定義在該-Confirm
自動調用的水平。如果函數的影響級別等於或大於$ConfirmPreference
級別,則-Confirm
將成爲默認行爲(不顯式調用它,可以通過執行-Confirm:$false
強制執行)。如果省略它,默認情況下,功能確認級別爲「中」。 $ConfirmPreference
變量的默認級別爲「高」。
通過'Remove-item ... -WhatIf'解決方法中途暫停回答以嘗試此操作。奇蹟般有效。 – gms0ulman