找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22891|回复: 2

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

[复制链接]
发表于 2012-1-17 22:33:18 | 显示全部楼层 |阅读模式
我写了一段
  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
复制代码
但是无法过滤!和%,求助!
发表于 2012-1-17 23:20:30 | 显示全部楼层
回复 1# cyxgg


    开启了EnableDelayedExpansion 就会把!号忽略。。。
    %这个也是。。。
可是这样却能完整的输出(!号似乎还不能。。)。。。
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f "delims=" %%i in (%~f0) do echo %%i
复制代码
发表于 2012-1-17 23:25:47 | 显示全部楼层
本帖最后由 CrLf 于 2012-1-17 23:28 编辑

回复 2# garyng


    先定义变量,再开启延迟,不过在循环中记得让每个 setlocal 对应至少一个 endlocal,虽然循环次数少时不加也可以,但这是个严谨的的好习惯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 19:35 , Processed in 0.009603 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表