转义cmd中的特殊字符

时间:2012-04-24 10:29:46

标签: escaping cmd

我有一个Windows .bat脚本,我尝试在参数中运行带密码的命令。我希望能够使用的密码是~!@#$%^&*()_+|-=\][{}';:"/.>?,<

根据我的阅读here,我应该^&|\<>^一起逃脱。根据我的假设,我应该"\"一起逃避。

这给了我类似的东西:

runme.exe /password:"~!@#$%^^^&*()_+^|-=^\][{}';:\"/.^>?,^<"

但它不起作用 - 我的目标应用程序响应登录失败。

如何逃避所有这些字符以便能够对我的批处理中的密码进行硬编码(现在忽略安全问题)?

2 个答案:

答案 0 :(得分:14)

将密码中的引号加倍,并确保完整的密码也包含在引号中:

runme.exe /password:"~!@#$%%^^^&*()_+^|-=\][{}';:""/.>?,<"

答案 1 :(得分:1)

尝试一下,但如果runme.exe的参数解析器需要引号作为密码的字符串封装器,那么它就不会起作用。如果你需要在密码中加上引号,那么runme.exe需要提供一种逃避它的方法!

runme.exe /password:~!@#$%%^^^&*()_+^|-=\][{}';:"/.>?,<