[英]Escaping single quotes in C# powershell runspace
我正在尝试在C#中使用System.Automation dll运行Exchange cmdlet。
在http://technet.microsoft.com/zh-cn/library/dd315325.aspx中 ,他们说过,为了转义单引号,我们基本上需要在其后面附加另一个单引号。
例如,
[PS] C:\Windows\system32>Write-Host 'Live and let le''arn'
Live and let le'arn
但是,当我尝试使用cmdlet执行相同的操作时,
New-Mailbox -Name 'user1.''.cn'
新邮箱实际上是以用户名创建的。''。cn。 我们希望它成为用户。'。cn执行此cmdlet的代码如下:
AutomatedRunspace.Command command = new AutomatedRunspace.Command(cmdlet.Command);
foreach (CmdletParameter param in cmdlet.GetParameters())
{
command.Parameters.Add(param.Name, param.Value);
}
pipeline.Commands.Add(command);
我们有什么办法可以正确逃脱它?
在C#中调用cmdlet时,还需要担心C#字符串的引用行为。 您的问题尚不清楚,您到底在C#代码中将Name参数设置为什么。 我会尝试这样的:
string nameArg = "user1.'.cn";
也就是说,PowerShell API应该绕过参数解析阶段,因为您是直接通过API提供参数的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.