本帖最后由 zm900612 于 2011-3-31 17:17 编辑
其实不需要伤筋动骨,只是一个忽略A.txt空行的小bug,修正一下就好:- @echo off&setlocal enableDelayedExpansion
- for /f "delims=" %%a in (B.txt) do set/a a+=1&set #!a!=@%%a
- :A
- set c=&set/a b=%random%%%a+1
- (echo;!#%b%:~1!
- for /f "delims=" %%a in (A.txt) do (
- if defined c echo;!c:~1!
- set "c=@%%a"
- )
- )>$
- move $ A.txt
- >nul ping 127.1 -n 5
- goto:A
复制代码 特殊字符的问题没什么好办法,因为%%a的预处理是在变量延迟之前的,所以如果%%a的值中含!会出错,要避免这个bug需要以严重降低效率为代价,所以将就吧。 |