联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off >a.txt type nul for /l %%a in (1,1,50000) do ( >>a.txt echo 中国DOS联盟批处理室测试数据%%a )
@echo off &setlocal enabledelayedexpansion for /f "delims=" %%i in (a.txt) do ( set /a n+=1 if !n! equ 49991 (exit /b 0) >>b.txt echo %%i )
@echo off more +49990 1.txt>2.txt echo.>>1.txt findstr /bevig:2.txt 1.txt>3.txt pause
C:\>timeit -s 2#if.bat Version Number: Windows NT 5.1 (Build 2600) Exit Time: 10:35 pm, Friday, November 21 2008 Elapsed Time: 0:00:28.484 Process Time: 0:00:21.453 C:\>timeit -s 4#findstr.bat Version Number: Windows NT 5.1 (Build 2600) Exit Time: 10:36 pm, Friday, November 21 2008 Elapsed Time: 0:00:04.093 Process Time: 0:00:00.046
Originally posted by HAT at 2008-11-22 12:51 PM: tireless 兄的代码为何不贴出来?
@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION Set/A N=1 FOR /F "skip=49990" %%i IN (a.txt) DO ( Set String!N!=%%i Set/A N+=1 ) Set/A N-=1 Set Command=FindStr /VC:!String%N%! a.txt Set/A N-=1 FOR /L %%i IN (!N! -1 1) DO Set Command=!Command!^|FindStr /VC:!String%%i! Cmd/C !Command!>output.txt Output.txt Del Output.txt