2012-04-24 126 views
9

我有一个Windows .bat脚本,我尝试在参数中使用密码运行命令。我想要使​​用的密码是[email protected]#$%^&*()_+|-=\][{}';:"/.>?,<转义cmd中的特殊字符

从我读的here,我应该逃脱^&|\<>^。从我的假设,我应该逃脱"\"

这给了我这样的事情:

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

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

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

+0

http://stackoverflow.com/questions/1741546/how-to-input-特殊字符在cmd – Atara 2012-04-24 10:34:14

+0

所以你建议'/密码:〜!@#$%^^^&*()_ +^| - = = \] [{}';:“/.^>? ,^''不行,不起作用 – NOtherDev 2012-04-24 10:38:48

+2

%很特别,%%似乎逃脱它 – jon 2012-04-24 10:45:41

回答

10

双密码中的报价,并确保完整的密码用引号括起来还有:

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

工作方式:'/ password:”〜!@#$ %% ^&*()_ + | - = \] [{}';: “”/>,<?“'(没有额外的''^引号内)非常感谢 – NOtherDev 2012-04-24 12:27:11

+0

如果你有%的你!密码 - 尝试使用%%。 更多信息:http://www.robvanderwoude.com/escapechars.php – 2017-08-07 15:29:27

1

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

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

仍然没有运气。提供逃生方法意味着什么?不幸的是,我无法控制'runme.exe'。你是否暗示'runme.exe'可能无法用'''支持密码? – NOtherDev 2012-04-24 12:01:54

+0

我这么认为,但是Christian.K的建议听起来不错。“ – jon 2012-04-24 12:15:05