[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
先发个
  1. @echo off&setlocal enabledelayedexpansion
  2. set "Tab=    "这里改为跳格键
  3. for /f "delims=" %%i in (a.txt) do (
  4.     set "str=%%i"
  5.     set "str="!str:%Tab%="%Tab%"!""
  6.     for %%j in (!str!) do (
  7.         set "var=!str:*%%j=!"
  8.         set "var1=!var:*%%j=!"
  9.         if "!var!" neq "" if "!var!" neq "!var1!" set "Tem=!Tem! %%~j"
  10.     )
  11.     echo!Tem!&set Tem=
  12. )
  13. pause
复制代码
[]

TOP

在列里找相同吗?
  1. @echo off&setlocal enabledelayedexpansion
  2. set "Tab= "这里改为跳格键
  3. for /f "delims=" %%i in (_a.txt) do (
  4.     set "str=%%i"
  5.     set n=
  6.     for %%j in ("!str:%Tab%="%Tab%"!") do (
  7.         set /a n+=1
  8.         for %%k in (!n!) do set l_%%k=!l_%%k!%Tab%%%j
  9.     )
  10. )
  11. for /l %%i in (1 1 %n%) do (
  12.     for %%j in (!l_%%i!) do (
  13.         set "var=!l_%%i:*%%j=!"
  14.         if "!var!" neq "" if "!var!" neq "!var:*%%j=!" set "Tem=!Tem! %%~j"
  15.     )
  16.     if defined Tem echo %%i列:!Tem!&set Tem=
  17. )
  18. pause
复制代码

TOP

原来这样  理解能力问题
  1. @echo off&setlocal enabledelayedexpansion
  2. set "Tab=        "这里改为跳格键
  3. for /f "delims=" %%i in (_a.txt) do (
  4.     set str=%%i&set n=
  5.     for %%j in ("!str:%Tab%="%Tab%"!") do (
  6.         set /a n+=1
  7.         for %%k in (!n!) do set "l_%%k=!l_%%k!|%%~j"
  8.     )
  9. )
  10. for /l %%i in (1 1 %n%) do (
  11.     for %%j in ("!l_%%i:~1!") do (
  12.         if defined _%%j (
  13.            if defined -%%j (
  14.               set "-%%j=!-%%j! %%i列"
  15.            ) else set /a m+=1&set __!m!=%%j&set "-%%j=!_%%j! %%i列"
  16.         ) else set _%%j=%%i列
  17.     )
  18. )
  19. for /l %%i in (1 1 %m%) do for %%j in (!__%%i!) do echo 第!-%%j!内容相同,列内容如下:&echo %%~j
  20. pause
复制代码
1

评分人数

    • batman: 好,效率能否再提?PB + 20

TOP

就现思路效率很难提升了 或许有其他路径走
最多也就16楼的第二段上简化下 但效率差不多 也就不在上面改了
  1. for /l %%i in (1 1 %n%) do (
  2.     for %%j in ("!l_%%i:~1!") do (
  3.         if "!-%%j:*列=!" equ "" set /a m+=1&set __!m!=%%j
  4.         set "-%%j=!-%%j! %%i列"
  5.     )
  6. )
复制代码

TOP

返回列表