
Допустим, у меня есть .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.