Как создать скрипт Powershell, который может использовать стандартный переключатель подтверждения?

Как создать скрипт Powershell, который может использовать стандартный переключатель подтверждения?

Допустим, у меня есть .ps1 с таким содержимым (само содержимое не имеет значения):

param(
    [Parameter(Mandatory=$true)]
    [string]
    $someArgument
)

# Do something risky
Remove-Item "c:\path\$someArgument.txt"

Я хотел бы добавить в свой скрипт (или в любой метод) сообщение с подтверждением, которое можно отключить (по умолчанию оно включено).

.\myscript.ps1 "foo" -Confirm:$false

Как мне это сделать ?

решение1

С помощью расширенных функций вы можете использовать функцию ShouldProcess.

В верхней части вашего скрипта вы можете добавить атрибут с именем [CmdletBinding]

[CmdletBinding(

        SupportsShouldProcess=$true,

        ConfirmImpact="High"

    )]

После этого в теле функции вам нужно использовать оператор if

if ($pscmdlet.ShouldProcess($thingIamGoingToChange))

Ознакомьтесь с справкой about_advanced_functions и справкой about_functions_cmdletbinding.

Связанный контент