[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
外部命令的威力在处理超大文本是彰显无遗:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (y1.txt) do (
  3. set /a "n=(10000001+n)-(n/10000000)*10000000"
  4. echo !n:~-7!:%%a
  5. ))>1.tmp
  6. sort /rec 8198 /+8 1.tmp>2.tmp
  7. (for /f "tokens=1* delims=:" %%a in (2.tmp) do (
  8. if "%%b" neq "!l!" (
  9. echo %%a
  10. set l=%%b
  11. )
  12. ))>3.tmp
  13. findstr /b /g:3.tmp 1.tmp>4.tmp
  14. (for /f "tokens=1* delims=:" %%a in (4.tmp) do echo %%b)>y2.txt
  15. del /f /q ?.tmp
  16. (for /f "delims=" %%a in (y2.txt) do (
  17. set /p=%%a:<nul
  18. for /f "tokens=3" %%b in ('find /c "%%a" y1.txt') do echo 存在%%b行重复
  19. ))>check.txt
  20. pause
复制代码
未测试速度,但是不考虑对特殊字符的兼容性的情况下,这应该比if defined快

TOP

本帖最后由 zm900612 于 2011-4-27 14:08 编辑

发现一个问题,为什么测试文件y1.txt中重复行这么多,测试了下,每行都有1000行相同...剔除重复行以后只剩下105行,需要定义的变量很少,难怪if defined的办法没怎么受影响,竟然只要二十多秒...无语了

TOP

哦,没注意,我还以为和随机数种子有关呢...

TOP

复制一楼代码的时候因为感觉创建类似的测试文本的可选方案很少,扫一眼没看到有特色的东西,所以就没细看…太懒啊太懒啊

TOP

返回列表