[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion
  2. ::将下面的[tab]改为实际的跳格键
  3. set "tab=[tab]"
  4. for /f "delims=" %%a in (a.txt) do (
  5.   set "str=%%a"
  6.   for /l %%b in (1 1 50) do (
  7.     for /f "delims=%tab%" %%c in ("!str!") do set "_%%b=!_%%b!批%%c"&set "str=!str:*%tab%=!"
  8.   )
  9. )
  10. echo,与前面列存在重复的列有:
  11. for /f "tokens=1* delims==" %%h in ('set _') do (
  12.   if "!%%i!"=="a" set "var=%%i"&echo,第%%h列:!var:批= !"
  13.   set "%%i=a"
  14. )
  15. pause>nul
复制代码

[ 本帖最后由 weichenxiehou 于 2011-3-10 19:02 编辑 ]
1

评分人数

    • batman: 积极参与最重要PB + 2
看得多说得多,远比不上写得多。

TOP

回复 10楼 的帖子

谢谢加分!我把我的代码执行结果跟11楼对比了下,多显示了一行,代码修改了一下,就是没列出哪些列是一样的,只把这些列的内容打印出来了:
  1. @echo off&setlocal enabledelayedexpansion
  2. ::将下面的[tab]改为实际的跳格键
  3. set "tab=[tab]"
  4. for /f "delims=" %%a in (a.txt) do (
  5.   set "str=%%a"
  6.   for /l %%b in (1 1 50) do (
  7.     for /f "delims=%tab%" %%c in ("!str!") do set "_%%b=!_%%b!批%%c"&set "str=!str:*%tab%=!"
  8.   )
  9. )
  10. echo,相同的列有:
  11. for /f "tokens=1* delims==" %%h in ('set _') do (
  12.   if "!%%i!"=="a" set "var=%%i"&echo,!var:批= !"
  13.   set "%%i=!%%i!a"
  14. )
  15. pause>nul
复制代码

[ 本帖最后由 weichenxiehou 于 2011-3-10 21:00 编辑 ]
看得多说得多,远比不上写得多。

TOP

回复 13楼 的帖子

  1. @echo off&setlocal enabledelayedexpansion
  2. ::将下面的[tab]改为实际的跳格键
  3. set "tab=[tab]"
  4. for /f "delims=" %%a in (a.txt) do (
  5.   set "str=%%a"
  6.   for /l %%b in (1 1 50) do (
  7.     for /f "delims=%tab%" %%c in ("!str!") do set "_%%b=!_%%b!批%%c"&set "str=!str:*%tab%=!"
  8.   )
  9. )
  10. echo,相同的列有:
  11. set n=
  12. for /f "tokens=1* delims==" %%h in ('set _') do (
  13.   if "!%%i!"=="" set/a n+=1&set "#!n!=%%i"
  14.   set "%%i=!%%i!%%h"
  15. )
  16. for /l %%j in (1 1 %n%) do (
  17.   set num=!#%%j!
  18.   call,set value=%%!num!%%
  19.   for /f "tokens=1-3 delims=_" %%x in ("!value!") do if not "%%y"=="" echo,第%%x %%y %%z列,内容为:!num:批= !
  20. )
  21. pause>nul
复制代码
效率不高,见谅。

[ 本帖最后由 weichenxiehou 于 2011-3-10 22:25 编辑 ]
1

评分人数

    • batman: 再尝试用两个for循环解决PB + 10
看得多说得多,远比不上写得多。

TOP

返回列表