Board logo

标题: [其他] [已解决]如何处理特殊字符 [打印本页]

作者: 00JTR00    时间: 2015-8-25 13:07     标题: [已解决]如何处理特殊字符

本帖最后由 pcl_test 于 2017-4-30 23:06 编辑

求助大神
SecureCRT.exe /SCRIPT D:\GNS3\SecureCRT6.5.0\Scripts\fwsm_sec_ssh.vbs /SSH2 /L root /PASSWORD "FJ&wgw@ZZ.($%^)" 10.0.19.193

cmd输入正常,调用到bat中,提示密码错误  "FJ&wgw@ZZ.($%^)"  引号内密码,bat把它识别成其他东西了,如何避免呢


尝试过 ^ \ / 等都无法成功
作者: flyinnet9    时间: 2015-8-25 13:32

试一下
FJ^&wgw@ZZ.($%%^^)
作者: 00JTR00    时间: 2015-8-25 13:34

高手,可以了,但是为什么后面多1个%
作者: 00JTR00    时间: 2015-8-25 13:36

试一下
FJ^&wgw@ZZ.($%%^^)
flyinnet9 发表于 2015-8-25 13:32



    高手,可以了,但是为什么后面多1个%
作者: aa77dd@163.com    时间: 2015-8-25 14:23

回复 4# 00JTR00

批处理文件中, 单个的 % 首先会尝试 参数扩展变量(%0 到 %9)的解析, 如果解析失败, % 会被忽略

当有两个连续时: %%  ,  如果在 for 语句中, 首先会尝试 解析为 for 变量(%% 后接一个), 否则, 会被当作 一个 %

在 set /a 后面表达式中时, 如果要当作 求余运算符, 那么 用 %%   , 并且后面不要紧接字母, 以免与 for 变量混淆,  单个的 % 会被忽略

测试批处理代码
  1. @echo off
  2. echo %
  3. echo %0
  4. echo %1
  5. echo %a
  6. echo %%
  7. echo %%a
  8. echo %%0
  9. echo %%1
  10. for %%a in (x) do (
  11.     echo %%0
  12.     echo %%a
  13.     echo %%b
  14. )
  15. set a=6
  16. set /a re = 15 %% a
  17. set re
  18. for %%a in (x) do (
  19. set /a re = 15 %%a
  20. )
  21. set re
  22. echo on
  23. set /a dd = 15 %%4
  24. set dd
  25. set /a ee = 15 % 4
  26. set ee
  27. pause
复制代码

作者: 00JTR00    时间: 2015-8-25 15:32

回复 5# aa77dd@163.com


    thx




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2