簡體   English   中英

如何使用whatif標志運行sdelete

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM