标题: [文本处理] 批处理文件如何逐字输出%0,不过滤特殊符号? [打印本页]
作者: cyxgg 时间: 2012-1-17 22:33 标题: 批处理文件如何逐字输出%0,不过滤特殊符号?
我写了一段- @echo off
- setlocal EnableDelayedExpansion
- for /f "delims=," %%i in (%~f0) do (
- set /a "num+=1"
- set "a!num!=%%i"
- )
- set a=1
- set c=0
- :loop
- if %a%==%num% goto over
- set "b=!a%a%:~%c%,1!"
- if "%b%"=="" set /a a+=1&set c=0&goto loop
- set /a c+=1
- set /p "d=%b%"
- goto loop
- :over
- pause>nul
复制代码
但是无法过滤!和%,求助!
作者: garyng 时间: 2012-1-17 23:20
回复 1# cyxgg
开启了EnableDelayedExpansion 就会把!号忽略。。。
%这个也是。。。
可是这样却能完整的输出(!号似乎还不能。。)。。。- @echo off
- setlocal EnableDelayedExpansion
- for /f "delims=" %%i in (%~f0) do echo %%i
复制代码
作者: CrLf 时间: 2012-1-17 23:25
本帖最后由 CrLf 于 2012-1-17 23:28 编辑
回复 2# garyng
先定义变量,再开启延迟,不过在循环中记得让每个 setlocal 对应至少一个 endlocal,虽然循环次数少时不加也可以,但这是个严谨的的好习惯
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |