【问题标题】:Escaping special characters in cmd在cmd中转义特殊字符
【发布时间】:2012-04-24 10:29:46
【问题描述】:

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

根据我读到的here,我应该用^ 逃避^&|\<>。根据我的假设,我应该使用\" 转义"

这给了我类似的东西:

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

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

我应该如何转义所有这些字符才能在我的批处理中硬编码密码(现在忽略安全问题)?

【问题讨论】:

  • 所以你建议/password:~!@#$%^^^&amp;*()_+^|-=\][{}';:"/.^&gt;?,^&lt;?不,不起作用。
  • % 是特殊的,%% 似乎逃脱了它。
  • 还是没有运气:/password:~!@#$%%^^^&amp;*()_+^|-=^\][{}';:"/.^&gt;?,^&lt;
  • 为了记录清酒,我不得不用^ 转义; 否则它将把; 作为命令结束。

标签: escaping cmd


【解决方案1】:

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

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

【讨论】:

  • 有效:/password:"~!@#$%%^&amp;*()_+|-=\][{}';:""/.&gt;?,&lt;"(引号内没有额外的^)。非常感谢!
  • 如果您的密码中有 % - 请改用 %%。更多信息:robvanderwoude.com/escapechars.php
【解决方案2】:

试一试,但如果runme.exe 的参数解析器需要引号作为密码的字符串封装器,它就无法工作。如果您需要在密码中包含引号,那么 runme.exe 需要提供一种转义方式!

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

【讨论】:

  • 还是没有运气。提供逃生途径是什么意思?不幸的是,我无法控制runme.exe。你是在暗示runme.exe 可能无法支持" 的密码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
  • 2017-03-06
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多