本帖最后由 batman 于 2011-4-27 08:10 编辑
因为cmd中的变量名+值的字节数上限为8190,当文本足够大时,代码中的str变量就会发生溢出,修改如下:- @echo off&setlocal enabledelayedexpansion
- set /a num=1
- for /f "delims=" %%a in (a.txt) do (
- set /a n+=1,m=n%%100
- if !m! equ 0 set /a num+=1
- for %%b in (!num!) do set "str_%%b="%%a" !str_%%b!"
- )
- (for /l %%a in (%num%,-1,1) do (
- for %%b in (!str_%%a!) do echo %%~b
- ))>tem
- del /q a.txt&ren tem a.txt
- start a.txt
复制代码
|