外部命令的威力在处理超大文本是彰显无遗:- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (y1.txt) do (
- set /a "n=(10000001+n)-(n/10000000)*10000000"
- echo !n:~-7!:%%a
- ))>1.tmp
- sort /rec 8198 /+8 1.tmp>2.tmp
- (for /f "tokens=1* delims=:" %%a in (2.tmp) do (
- if "%%b" neq "!l!" (
- echo %%a
- set l=%%b
- )
- ))>3.tmp
- findstr /b /g:3.tmp 1.tmp>4.tmp
- (for /f "tokens=1* delims=:" %%a in (4.tmp) do echo %%b)>y2.txt
- del /f /q ?.tmp
- (for /f "delims=" %%a in (y2.txt) do (
- set /p=%%a:<nul
- for /f "tokens=3" %%b in ('find /c "%%a" y1.txt') do echo 存在%%b行重复
- ))>check.txt
- pause
复制代码 未测试速度,但是不考虑对特殊字符的兼容性的情况下,这应该比if defined快 |