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?
答案 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));
这应该可以正常工作:)