首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell -Confirm:$Y

Powershell -Confirm:$Y
EN

Stack Overflow用户
提问于 2015-03-31 14:01:39
回答 2查看 2K关注 0票数 1

大家好,程序员朋友们,谁能告诉我用c#代码传递-Confirm:$Y的方法?下面是我的不接受-Confirm参数的C#代码。

代码语言:javascript
复制
PowerShell powershell = PowerShell.Create();
PSCommand command = new PSCommand();
command.AddCommand("Remove-MailContact");
string DisplayName = "UniqueValue112";
command.AddParameter("Identity", DisplayName);
command.AddParameter("Confirm", true);

等价的powershell代码是

代码语言:javascript
复制
Remove-MailContact -Identity $DisplayName -Confirm:$Y

谁能告诉我怎么用C#传递等同于-Confirm:$Y的东西?

EN

回答 2

Stack Overflow用户

发布于 2015-03-31 15:15:17

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

代码语言:javascript
复制
command.AddParameter("Confirm", false);

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

-Confirm:$y工作的原因是$y (通常)是一个未定义的变量,它的计算结果是$null,当转换为Boolean时,它就变成了$false。显然,如果脚本的某些部分将变量$y设置为非空值,这将以一种神秘且难以调试的方式失败。

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

票数 7
EN

Stack Overflow用户

发布于 2017-04-13 17:13:28

您应该使用以下内容:

代码语言:javascript
复制
command.AddParameter("Confirm", new SwitchParameter(false));

这应该可以很好地工作:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29361629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档