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

[文本处理] 批处理文件如何逐字输出%0,不过滤特殊符号?

我写了一段
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "delims=," %%i in (%~f0) do (
  4. set /a "num+=1"
  5. set "a!num!=%%i"
  6. )
  7. set a=1
  8. set c=0
  9. :loop
  10. if %a%==%num% goto over
  11. set "b=!a%a%:~%c%,1!"
  12. if "%b%"=="" set /a a+=1&set c=0&goto loop
  13. set /a c+=1
  14. set /p "d=%b%"
  15. goto loop
  16. :over
  17. pause>nul
复制代码
但是无法过滤!和%,求助!

回复 1# cyxgg


    开启了EnableDelayedExpansion 就会把!号忽略。。。
    %这个也是。。。
可是这样却能完整的输出(!号似乎还不能。。)。。。
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "delims=" %%i in (%~f0) do echo %%i
复制代码

TOP

本帖最后由 CrLf 于 2012-1-17 23:28 编辑

回复 2# garyng


    先定义变量,再开启延迟,不过在循环中记得让每个 setlocal 对应至少一个 endlocal,虽然循环次数少时不加也可以,但这是个严谨的的好习惯

TOP

返回列表