我有一个批处理文件test.bat,它从命令行获取2个参数。
Arg1 - "C:\work Area\"
Arg2 - "Hello politics="Hero Jack""
我将test.bat称为
test.bat "C:\work Area\" "Hello politics="Hero Jack""
我希望bat文件将第二个参数作为Hello politics="Hero Jack"
。我不知道如何使用参数调用test.bat,以便它发生这样......
它所采用的第二个参数类似于"Hello politics="Hero
,它会丢弃Jack"
。你能让我知道我错误地打电话了吗?
答案 0 :(得分:3)
在我看来,不可能把它作为一个参数
Arg2 - "Hello politics="Hero Jack""
这是因为参数标记器对插入符号不是很感兴趣。 似乎,tokenizer只计算引号。
解析器检测到插入符并可以转义特殊字符,如& >或者<
但是将行拆分为%1,%2参数的标记生成器使用该规则。
分隔符,如; =启动一个新参数,如果在
test.bat """This is one param"
test.bat ""These are four params"
test.bat ^"This is also one param"
test.bat ^^"This is also one param"
但您可以使用解决方法,例如
test.bat "C:\work Area\" "Hello politics=""Hero Jack""
这创造了%2“Hello politics =”“Hero Jack”“ 然后你可以用一个引号替换所有双引号。
答案 1 :(得分:0)
在每个内部引号之前使用carat ^作为转义字符:
test.bat "C:\work Area\" "Hello politics=^"Hero Jack^""
我希望这适合你。
答案 2 :(得分:0)
好的,请参考2.尝试将整个参数字符串包装在一对额外的引号中:
test.bat ""C:\work Area\" "Hello politics="Hero Jack"""