我们通过 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 行,...”
有人知道如何正确传递双引号吗?
到目前为止我尝试过但没有奏效的方法:
- 只需传递参数
- 使用双双引号(即 attr=""value"")
- 使用PowerShell的反引号转义机制(即attr=`"value`")
- 在整个参数周围使用单引号(仅当值不包含空格时才有效)