Powershell -Confirm:$ Y.

1 c# powershell

你好同事们,有人可以告诉我传递方式 - 确认:$ Y使用ac#code.这是我的C#代码,它不接受-Confirm参数.

PowerShell powershell = PowerShell.Create();
PSCommand command = new PSCommand();
command.AddCommand("Remove-MailContact");
string DisplayName = "UniqueValue112";
command.AddParameter("Identity", DisplayName);
command.AddParameter("Confirm", true);
Run Code Online (Sandbox Code Playgroud)

等效的PowerShell代码是

Remove-MailContact -Identity $DisplayName -Confirm:$Y
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何使用C#传递等效的-Confirm:$ Y?

Rya*_*ose 7

您想将值设置-Confirm为false.

command.AddParameter("Confirm", false);
Run Code Online (Sandbox Code Playgroud)

在PowerShell命令中,这-Confirm:$false是正确的方法.

其原因-Confirm:$y工作原理是,$y(通常)未定义的变量,其结果为$null,成为$false投射到布尔时.显然,如果脚本的某些部分将变量设置$y为非空值,则会以神秘且难以调试的方式失败.

关于语法的注释:-Parameter:$value等同-Parameter $value于大多数PowerShell参数.前者是[switch]参数所必需的-Confirm,因为它们通常不接受值,因此不会绑定到命令行上的下一个标记.