![](/img/trans.png)
[英]How to use the “__ProviderArchitecture” flag of IWbemContext in c?
[英]How to run sdelete with a whatif flag
我正在編寫一個PowerShell腳本,使用Get-ChildItem
查找目錄,並將它們傳遞給sdelete
。 我想試運行它。 我認為sdelete
沒有-WhatIf
標志。 有什么辦法可以實現類似的目標嗎?
您可以通過在函數頂部的CmdletBinding語句中添加SupportShouldProcess
並在代碼中添加if ($pscmdlet.ShouldProcess(something) { }
塊,來實現-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
變量的默認級別為“高”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.