我有一个psake脚本来管理我的部署,过程如下:
我在外部部署时以下列方式执行msdeploy:
exec { & $deploy_cmd /Y /M:$msdeploy_url /U:$user /P:$pwd /A:NTLM }
当密码包含&符号(&)时,我认为,当将参数分配给变量时,cmd文件会在&和&之前分配密码部分。然后尝试执行该部分。哪个是bat文件行为(&用于分隔命令)。
我在密码提示期间尝试使用插入符号(^)转义密码,但这不起作用。
除了更改密码外,还有其他选择吗?
答案 0 :(得分:0)
因为cmd文件正在解析参数,然后再次将它们作为原始字符串传递,这是我获得的唯一方法。在密码中使用的字符是在某些特殊字符之前使用^^^对其进行三重转义。我假设&将同样工作。或者您可以转义密码中的所有字符:
$pwd = $pwd -replace '.','^^^$&'