[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
贴一个正统的解法
只为提供一种思路
为了增强代码的可读性
比较大的牺牲了效率
据说将变量名和值改为简短的英文可以提高部分效率
有心人可以试试
另外,没有细看其它人的代码
算法如有雷同,纯属巧合

  1. @echo off & setlocal EnableDelayedExpansion
  2. rem 清空环境变量空间,防止被意外变量影响
  3. for /f "delims==" %%e in ('set') do set %%e=
  4. set 起始时间=%time%
  5. rem 逐行读取测试文本
  6. for /f "delims=" %%l in (a.txt) do (
  7.     set "某行=%%l"
  8.     set "某行=!某行: =空格!
  9. set 列序号=0
  10. rem 将当前行的字符串逐个追加赋值到列变量中
  11. for %%s in (!某行!) do (
  12. set /a 列序号+=1
  13. rem 将列分割符放在后面,是为了显示出字符串末尾可能存在的空格
  14. for %%e in (_V!列序号!) do set _V!列序号!=!%%e!%%s列分割符
  15. )
  16. )
  17. rem 整理得到的所有整列
  18. for /l %%i in (1,1,!列序号!) do (
  19. set "某整列=!_V%%i!"
  20. if not defined !某整列! (
  21. set "!某整列!=%%i列"
  22. ) else (
  23. for %%d in (!某整列!) do set "!某整列!=!%%d! %%i列"
  24. set 重复列=!重复列! !某整列!
  25. )
  26. )
  27. for %%c in (%重复列%) do (
  28. echo !%%c!内容相同,列内容如下:
  29. set "列内容=%%c"
  30. set "列内容=!列内容:空格= !"
  31. set "列内容=!列内容:列分割符=|!"
  32. echo !列内容!
  33. echo.
  34. )
  35. echo %起始时间%
  36. echo %time%
复制代码

[ 本帖最后由 qzwqzw 于 2011-3-12 22:48 编辑 ]
天的白色影子

TOP

返回列表