[英]Pass argument with quotes to PowerShell script via TeamCity
我们通过TeamCity调用PowerShell脚本。 我们想传递一个包含引号的参数,例如:
Build step : PowerShell
Script file : foo/bar/my.ps1
Script arguments : -MyParam "%system.MyParam%"
其中system.MyParam
设置为<xml><elem attr="value"></elem></xml>
。 不幸的是,这失败了:
无法在参数
MyParam
上处理参数转换。 无法将值“<xml><elem
”转换为“System.Xml.XmlDocument
”类型。 错误:“解析名称时发生了意外的文件结束。第1行,......”
有谁知道如何正确传递双引号?
到目前为止我尝试过但没有奏效:
由于您的问题是输入XML字符串包含双引号属性值,因此可能的解决方法可能是使用单引号属性值 。
Backtick( `
)是PSH转义字符。 因此,您可以使用"`""
来传递包含双引号字符的字符串。
您还可以在PSH字符串周围使用单引号 - 并且还避免表达式插值: '"'
也是带有单引号的字符串。
但请记住,您需要确保引用适用于启动程序(发送参数)和脚本本身:您可能还需要转义转义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.