如何更改PowerShell Cmdlet的默认确认选项?

7
有没有办法更改高级 PowerShell 脚本的默认确认选项?
当我实现 Cmdlet 并运行它时,会询问是否确认,如下所示:
MyPS

Confirm
Are you sure you want to perform this action?    
Performing operation "XYZ" on Target "123".
[Y] Yes [A] Yes to All [N] No [L] No to all [S] Suspend [?] Help (default is "Y"):

如何更改默认值? 我想将默认值从“Y”更改为“N”。

1个回答

2

您的问题不太清晰。您是否想知道如何设置全局默认值(对于给定的PowerShell会话),以抑制默认提示需要确认的cmdlet,这样您就不必每次运行它们时都指定-Confirm:$false了吗?请设置默认变量:

$ConfirmPreference = $false

您是想知道如何更改特定 cmdlet 的确认影响吗?在脚本开头声明 [CmdletBinding(ConfirmImpact = 'high')]。请注意,如果声明了 CmdletBinding,则需要一个 param() 块,即使它是空的。


我想要确认,但是类似于[Y] 是 [A] 全部是 [N] 否 [L] 全部否 [S] 暂停 [?] 帮助(默认为“N”): - user3006883
[CmdletBinding(ConfirmImpact = 'high')] 只是让您请求确认,但不允许更改确认的默认选项。默认选项为“是”(默认为“Y”),需要将其更改为“否”(默认为“N”)。 - user3006883
啊...那就很不一样了。好问题...我不知道有改变那个的方法,但是我也没查过。通常如果我不想使用默认的行为,我会在开头加上 if ($PSBoundParameters.Confirm) {$ConfirmPreference = 'SilentlyContinue'},然后实现自己的确认提示。但是如果你只是想做一个小改变,也许有内置的方法可以实现。 - Adi Inbar
[tag:powershell] 即使 $ConfirmPreference 的值是 'None'(四个枚举值中的一个),Set-WinUserLanguageList 仍然要求确认。 - user4104817

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接