联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in (a.txt) do ( set /a n+=1 if !n! equ 1001 echo 写入完成&pause>nul&goto :eof echo %%i>>2.bat )
经常要对文件的指定行进行读取,特写了一个读取文件指定行的小程序段(ReadLine.Bat),方面以后调用。 使用也比较简单:"Call ReadLine <文件名> <跳过的行数> <读取行数>"就可以了。比如在一个批处理里加上一句"Call ReadLine a.txt 5 7",那么将跳过a.txt文件的前5行,显示下面的7行字符,也包含空行。也可以不指定第三个参数。 ReadLine.Bat @echo off&SetLocal ENABLEDELAYEDEXPANSION if "%1"=="" (goto --help) else (set file=%~s1) if "%2"=="" (set first="delims=: tokens=1*") else (set first="skip=%2 delims=: tokens=1*") if "%3"=="" ( for /f %first% %%a in ('findstr /n .* %file%') do echo/%%b goto :EOF ) set last=%3 set loop=0 for /f %first% %%a in ('findstr/n .* %file%') do ( if not defined lxmxn (echo/%%b&set /a loop+=1) else (goto :EOF) if "!loop!"=="%last%" set lxmxn=Nothing ) GOTO :EOF :--help echo/====================================== echo/本程序段需要带参数才能正常运行 echo/&echo/Usage:&echo/Call ReadLine ^<文件名^> ^<跳过行数^> ^<读取行数^> echo/&echo/例如:call ReadLine aa.txt 5 7 ,将跳过aa.txt文件的前5行,读取下面的7行字符 echo/&echo/如果^<跳过行数^>没有指定,就从文件第一行读取 echo/&echo/指定^<读取行数^>时必须指定^<跳过行^> echo/====================================== goto :eof