我需要通过字符串“登录失败”作为一道爽口模式参数运行可口测试出栈的时候。
这是很简单的在bash:
PS C:\Pyrethrum> stack test --fast --ta "-p \"fail log\""
但是,试图实现使用PowerShell同样是驾驶我坚果:
PS C:\Pyrethrum> stack test --fast --ta "-p ""fail"" "
作品(运行测试)时,有没有空间
PS C:\Pyrethrum> stack test --fast --ta "-p ""fail log"" "
错误分析目标:找不到目录:登录
PS C:\Pyrethrum> stack test --fast --ta "-p `"fail log`""
尝试安装一个叫做日志包
PS C:\Pyrethrum> stack test --fast --ta "-p \"fail log\""
选项--ta:未结束的字符串:endOfInput
PS C:\Pyrethrum> stack test --fast --ta "-p /fail log/ "
......构建但模式需要报价
除虫菊-0.1.0.0:测试(套房:除虫菊检验,ARGS:-p /失败日志/)
-p选项:无法解析模式
正确的命令行得到这个在PowerShell中运行的是什么?
不幸的是,PowerShell的参数传递给外部程序的方式被打破,需要你不只是满足PowerShell的关于自己的语法要求嵌入式"
,而是另外逃脱他们的目标可执行文件,通常与\
:
# `" is needed for PowerShell, \ is needed for stack
stack test --fast --ta "-p \`"fail log\`""
由于您的外"..."
字符串没有引用任何PowerShell的变数和不包含的子表达式,即,由于不需要串插,可以使用'...'
,文字PowerShell的字符串,而不是,它简化事项位:
stack test --fast --ta '-p \"fail log\"'
简而言之:为了通过嵌在一个参数从PowerShell的外部程序"
字符:
\`"
内"..."
\"
内'...'
见this GitHub issue了解详情。