我想从Jenkins Pipeline运行以下PowerShell脚本文件:
".\Folder With Spaces\script.ps1"
我已经可以通过以下步骤定义做到这一点:
powershell(script: '.\\Folder` With` Spaces\\script.ps1')
所以我必须记住:
我希望至少避免这种情况。例如,是否可以避免使用反引号转义? (出于某种原因,将其放在“”之间似乎无效。)
答案 0 :(得分:1)
我发现可以像这样使用&运算符或调用运算符:
powershell(script: "& '.\\Folder With Spaces\\script.ps1'")
这消除了反引号的转义,并且应该使生活稍微容易些。
答案 1 :(得分:1)
为避免转义反斜杠,可以如下使用slashy strings或dollar slashy strings。但是,不能将反斜杠用作斜杠字符串中的最后一个字符,因为它会转义/
。当然,在使用slashy strings时也必须转义斜线。
String slashy = /String with \ /
echo slashy
assert slashy == 'String with \\ '
// won't work
// String slashy = /String with \/
String dollarSlashy = $/String with / and \/$
echo dollarSlashy
assert dollarSlashy == 'String with / and \\'
当然,您将失去使用\n
在字符串中包含换行符\
和其他特殊字符的可能性。但是,由于斜线和美元斜线字符串都具有多行支持,因此至少可以包含换行符,如:
String slashyWithNewline = /String with \/ and \
with newline/
echo slashyWithNewline
assert slashyWithNewline == 'String with / and \\ \nwith newline'
String dollarSlashyWithNewline = $/String with / and \
with newline/$
echo dollarSlashyWithNewline
assert dollarSlashyWithNewline == 'String with / and \\ \nwith newline'
如果将其与您自己的答案结合在一起,则不需要两个转义。