贴一个正统的解法
只为提供一种思路
为了增强代码的可读性
比较大的牺牲了效率
据说将变量名和值改为简短的英文可以提高部分效率
有心人可以试试
另外,没有细看其它人的代码
算法如有雷同,纯属巧合 
- @echo off & setlocal EnableDelayedExpansion
- rem 清空环境变量空间,防止被意外变量影响
- for /f "delims==" %%e in ('set') do set %%e=
- set 起始时间=%time%
-
- rem 逐行读取测试文本
- for /f "delims=" %%l in (a.txt) do (
- set "某行=%%l"
- set "某行=!某行: =空格!
- set 列序号=0
- rem 将当前行的字符串逐个追加赋值到列变量中
- for %%s in (!某行!) do (
- set /a 列序号+=1
- rem 将列分割符放在后面,是为了显示出字符串末尾可能存在的空格
- for %%e in (_V!列序号!) do set _V!列序号!=!%%e!%%s列分割符
- )
- )
-
- rem 整理得到的所有整列
- for /l %%i in (1,1,!列序号!) do (
- set "某整列=!_V%%i!"
- if not defined !某整列! (
- set "!某整列!=%%i列"
- ) else (
- for %%d in (!某整列!) do set "!某整列!=!%%d! %%i列"
- set 重复列=!重复列! !某整列!
- )
- )
-
- for %%c in (%重复列%) do (
- echo !%%c!内容相同,列内容如下:
- set "列内容=%%c"
- set "列内容=!列内容:空格= !"
- set "列内容=!列内容:列分割符=|!"
- echo !列内容!
- echo.
- )
- echo %起始时间%
- echo %time%
复制代码
[ 本帖最后由 qzwqzw 于 2011-3-12 22:48 编辑 ] |