Powershell -Confirm:$ Y.

时间:2015-03-31 06:01:39

标签: c# powershell

Hello Fellow程序员,有人可以告诉我传递方式 - 确认:$ Y使用c#代码。 这是我的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);

等效的PowerShell代码是

Remove-MailContact -Identity $DisplayName -Confirm:$Y

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

2 个答案:

答案 0 :(得分:7)

您希望将-Confirm的值设置为false。

command.AddParameter("Confirm", false);

在PowerShell命令中, -Confirm:$false 是执行此操作的正确方法。

-Confirm:$y的作用原因是$y(通常)是一个未定义的变量,其值为$null,当转换为布尔值时变为$false。显然,如果脚本的某些部分将变量$y设置为非空值,则会以神秘且难以调试的方式失败。

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

答案 1 :(得分:1)

您应该使用以下内容:

command.AddParameter("Confirm", new SwitchParameter(false));

这应该可以正常工作:)