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

[文本处理] 批处理 变量的 两边的引号如何去掉?

批处理 字符变量的 两边的引号如何去掉?


set str="string"
Echo %str%|Findstr /I /R "^"".*""$" >nul&&Set "str=%str:~1,-1%"

本论坛里面 有人给出的 正则表达式 语句,这个无任何输出,求教!~

变量赋值的时候为什么要那样加引号呢?这样就好了吧:
  1. set "str=string"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# kosoft
  1. set "var="1^"2^"3""
  2. echo.sA0=%var%
  3. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  4. echo.sA0=%var%
  5. set var="1"2"3
  6. echo.sA1=%var%
  7. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  8. echo.sA1=%var%
  9. set var=1"2"3"
  10. echo.sA2=%var%
  11. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  12. echo.sA2=%var%
  13. set var=1"2"3
  14. echo.sA3=%var%
  15. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  16. echo.sA3=%var%
  17. set var="123
  18. echo.sA4=%var%
  19. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  20. echo.sA4=%var%
  21. set var=123"
  22. echo.sA5=%var%
  23. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  24. echo.sA5=%var%
  25. set var=1"23
  26. echo.sA6=%var%
  27. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  28. echo.sA6=%var%
  29. set var=12"3
  30. echo.sA7=%var%
  31. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  32. echo.sA7=%var%
  33. set var=123
  34. echo.sA8=%var%
  35. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  36. echo.sA8=%var%
  37. set var=""
  38. echo.sA9=%var%
  39. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  40. echo.sA9=%var%
  41. set var="
  42. echo.sA91=%var%
  43. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  44. echo.sA91=%var%
  45. set var=
  46. echo.sA92=%var%
  47. echo %var% | findstr /i /r "^"".*""$" > nul && set "var=%var:~1,-1%"
  48. echo.sA92=%var%
复制代码
  1. sA0="1"2"3"
  2. sA0=1"2"3
  3. sA1="1"2"3
  4. sA1=1"2"
  5. sA2=1"2"3"
  6. sA2="2"3
  7. sA3=1"2"3
  8. sA3=1"2"3
  9. sA4="123
  10. sA4=12
  11. sA5=123"
  12. sA5=23
  13. sA6=1"23
  14. sA6="2
  15. sA7=12"3
  16. sA7=2"
  17. sA8=123
  18. sA8=123
  19. sA9=""
  20. sA9=
  21. sA91="
  22. sA91=
  23. sA92=
  24. sA92=
复制代码
还是有 bug, 变成:脱去环境变量 var 串中最外层一对引号及引号外侧的内容;

TOP

回复  kosoft 还是有 bug, 变成:脱去环境变量 var 串中最外层一对引号及引号外侧的内容;
tiandyoin 发表于 2023-2-24 11:01


这下完美解决了,只是双引号太多了,我自己也无法解释~~
  1. @echo off
  2. cd.
  3. echo.error=%errorlevel%
  4. set "var="1^"2^"3""
  5. echo.sA0=%var%
  6. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  7. rem echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  8. echo.sA0=%var%
  9. echo.error=%errorlevel%
  10. cd.
  11. echo.error=%errorlevel%
  12. set var="1"2"3
  13. echo.sA1=%var%
  14. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  15. rem > nul && set "var=%var:~1,-1%"
  16. echo.sA1=%var%
  17. echo.error=%errorlevel%
  18. cd.
  19. echo.error=%errorlevel%
  20. set var=1"2"3"
  21. echo.sA2=%var%
  22. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  23. echo.sA2=%var%
  24. echo.error=%errorlevel%
  25. cd.
  26. echo.error=%errorlevel%
  27. set var=1"2"3
  28. echo.sA3=%var%
  29. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  30. echo.sA3=%var%
  31. echo.error=%errorlevel%
  32. cd.
  33. echo.error=%errorlevel%
  34. set var="123
  35. echo.sA4=%var%
  36. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  37. echo.sA4=%var%
  38. echo.error=%errorlevel%
  39. cd.
  40. echo.error=%errorlevel%
  41. set var=123"
  42. echo.sA5=%var%
  43. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  44. echo.sA5=%var%
  45. echo.error=%errorlevel%
  46. cd.
  47. echo.error=%errorlevel%
  48. set var=1"23
  49. echo.sA6=%var%
  50. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  51. echo.sA6=%var%
  52. echo.error=%errorlevel%
  53. cd.
  54. echo.error=%errorlevel%
  55. set var=12"3
  56. echo.sA7=%var%
  57. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  58. echo.sA7=%var%
  59. echo.error=%errorlevel%
  60. cd.
  61. echo.error=%errorlevel%
  62. set var=123
  63. echo.sA8=%var%
  64. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  65. echo.sA8=%var%
  66. echo.error=%errorlevel%
  67. cd.
  68. echo.error=%errorlevel%
  69. set var=""
  70. echo.sA9=%var%
  71. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  72. echo.sA9=%var%
  73. echo.error=%errorlevel%
  74. cd.
  75. echo.error=%errorlevel%
  76. set var="
  77. echo.sA91=%var%
  78. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  79. echo.sA91=%var%
  80. echo.error=%errorlevel%
  81. cd.
  82. echo.error=%errorlevel%
  83. set var=
  84. echo.sA92=%var%
  85. echo "%var%%var%"| findstr /i /r "^"""""".*""""""$" > nul && set "var=%var:~1,-1%"
  86. echo.sA92=%var%
  87. echo.error=%errorlevel%
  88. rem 正则替换两边的双引号,精准定位,不会误删。
  89. pause
复制代码

TOP

返回列表