[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理命令for不带开关,如何转义通配符星号和问号?

  1. :testForRaw
  2. set i=100
  3. for %%a in (
  4. "~"
  5. "`"
  6. "!"
  7. "@"
  8. "#"
  9. "$"
  10. "%"
  11. "^"
  12. "&"
  13. "*"
  14. "("
  15. ")"
  16. "-"
  17. "_"
  18. "+"
  19. "["
  20. "]"
  21. "{"
  22. "}"
  23. "\"
  24. "|"
  25. ":"
  26. ";"
  27. """"
  28. "'"
  29. "<"
  30. ">"
  31. ","
  32. "."
  33. "?"
  34. "/"
  35. "C:\Windows\System32\C_114?.NLS"
  36. "s(^^)*s"
  37. "a"
  38. "b c"
  39. "b
  40. c"
  41. ; "Data"=hex:
  42. ; " "Data"=hex: "
  43. ; ""Data"=hex:"
  44. ; "HKEY_CURRENT_USER\Control Panel"
  45. con
  46. "con"
  47. " " "
  48. """
  49. """
  50. ) do (
  51. set /a i+=1
  52. call set "Key%%i%%=%%~a"
  53. )
  54. set Key
  55. @goto :EOF
复制代码
代码如上,* 会匹配成当前目录下任何文件,? 会匹配成任何单个字符。
我想取消它两的特殊作用,能否把它们转义了?

TOP

你这是英文的?*这个是不允许在文件名里面的吧  也就是说转义了也没用
中文的?做不了通配符吧   
中文和英文的*好像是一样的

TOP

本帖最后由 Nsqs 于 2023-10-11 02:21 编辑
  1. @echo off
  2. set n=100
  3. for /f "delims=" %%1 in ('PowerShell -noprofile -executionpolicy bypass "$Read=gc '%~f0';$Read|select -Skip ($Read|Select-String '^::ps').LineNumber|out-string|iex"')do set /a n+=1&call set #Key%%n:~1,3%%=%%1
  4. set #Key
  5. pause
  6. goto :eof
  7. %你的代码1...%
  8. %你的代码2...%
  9. %你的代码3...%
  10. %你的代码666...%
  11. ::ps 从这一行开始最好放在最后一行
  12. data {
  13.     '~'
  14.     '`'
  15.     '!'
  16.     '@'
  17.     '#'
  18.     '$'
  19.     '%'
  20.     '^'
  21.     '&'
  22.     '*'
  23.     '('
  24.     ')'
  25.     '-'
  26.     '_'
  27.     '+'
  28.     '['
  29.     ']'
  30.     '{'
  31.     '}'
  32.     '\'
  33.     '|'
  34.     ':'
  35.     ';'
  36.     "'"
  37.     '<'
  38.     '>'
  39.     ','
  40.     '.'
  41.     '?'
  42.     '/'
  43.     'C:\Windows\System32\C_114?.NLS'
  44.     's()*s'
  45.     'a'
  46.     'b c'
  47.     '"b '
  48.     'c"'
  49.     ' "Data"=hex:'
  50.     ' "Data=hex: '
  51.     ' """Data"=hex:"'
  52.     ' "HKEY_CURRENT_USER\Control Panel"'
  53.     'con'
  54.     'con'
  55.     ' " '
  56.     '"'
  57. }
  58. #下边就不要再写bat代码了,否则PowerShell读取不是你想要的数据了
复制代码
大致模拟,毕竟不懂你的逻辑

TOP

返回列表