[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
你的意思是搜索目录(包含子目录)里的文件,如果有文件名重复的就显示他们的完整路劲,文件名,日期,大小?如果没重复的就不显示吗?

TOP

删除,代码后面。避免引起误会

[ 本帖最后由 sgaizxt001 于 2010-4-25 22:39 编辑 ]

TOP

好象我浪费论坛资源了,不过真是无心的,斑竹原谅

TOP

我晕还是有BUG,b.txt多显示了一遍
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-h /s e:\新建文件夹\*.txt') do (
  4.   for /f "delims=" %%i in ("%%~nxi") do (
  5.      if not defined %%i (
  6.          set %%i=A_     ) else (
  7.                    set str=%%~nxi
  8.      for /r "e:\新建文件夹\" %%i in (!str!) do (
  9.         if exist %%~fi  echo. %%i#%%~fi#%%~ni#%%~ti#%%~zi >>tmp_.txt
  10.                                        )
  11.                                )
  12.                      )
  13.                                              )
  14. pause
  15. for /f "tokens=1,2* delims=#" %%i in (tmp_.txt) do (
  16.     if not defined %%j set %%j=A & echo %%i  %%j  %%k>>结果.txt
  17.                                       )
  18. del tmp_.txt
复制代码
你再用这个看看能不能用

[ 本帖最后由 sgaizxt001 于 2010-4-26 07:41 编辑 ]

TOP

1.这里%%~nxi可以直接用%%i代替了,
if exist %%~fi  echo. %%~fi %%~ni        %%~ti        %%~zi   %%i>>tmp_.txt
无法产生的是因为我是以路径来作为变量进行最后一个循环的,所以无法产生,你把%%i写在%%~fi后面就可以,一个文件夹下不可能有两个名字相同的文件,但是我前面的代码输出里会有重复显示,所以以完整路径来判断有没有重复的行我认为可行
2.排版的话好象有点问题,如果路径多一个文件夹,后面空格就仍然是那么多个。你看看练习题里就有一个排版的,看看可不可以有点启发

[ 本帖最后由 sgaizxt001 于 2010-4-25 22:37 编辑 ]

TOP

你再看看7楼的代码可以不。

TOP

这样的话,问题还是不严重。对临时文件只输入完整路径,然后去掉相同的行,在最后的输出里在输出你想要的东西就可以了
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-h /s e:\新建文件夹\*.txt') do (
  4.   for /f "delims=" %%i in ("%%~nxi") do (
  5.      if not defined %%i (
  6.          set %%i=A_     ) else (
  7.                    set str=%%~nxi
  8.      for /r "e:\新建文件夹\" %%i in (!str!) do (
  9.         if exist %%~fi  echo. %%~fi>>tmp_.txt
  10.                                        )
  11.                                )
  12.                      )
  13.                                              )
  14. pause
  15. for /f "delims=" %%i in (tmp_.txt) do (
  16.     if not defined %%i set %%i=A & echo %%~nxi %%~fi %%~ni %%~ti %%~zi>>结果.txt
  17.                                       )
  18. del tmp_.txt
复制代码
努力学习,努力挣分

TOP

我这里没有办法测试,因为我是初学者,写的代码不能一次成功,需要测试修改才能用,而且不具有通用性。你及时给提出问题,我好修改,不过浪费了你的时间真不好意思
努力学习,努力挣分

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-h /s E:\vod\综艺一\*.txt') do (
  4.   for /f "delims=" %%i in ("%%~nxi") do (
  5.      if not defined %%i (
  6.          set %%i=A_     ) else (
  7.                    set str=%%~nxi
  8.      for /r "E:\vod\综艺一\" %%i in (!str!) do (
  9.         if exist %%~fi  echo.%%~fi %%~ti %%~zi >>tmp_.txt
  10.                                        )
  11.                                )
  12.                      )
  13.                                              )
  14. pause
  15. for /f "tokens=1,2,3,4 delims= " %%i in (tmp_.txt) do (
  16.     if not defined %%i set %%i=A & echo. %%~nxi %%i %%j %%k %%l >>结果.txt
  17.                                       )
  18. endlocal
  19. del tmp_.txt
复制代码
这是我运行出来的结果:
NOTES.txt E:\vod\综艺一\2009-2010赛季NBA赛事\NOTES.txt 2009-06-27 04:06 275
NOTES.txt E:\vod\综艺一\2009NBA全明星赛\NOTES.txt 2009-04-10 04:12 559
NOTES.txt E:\vod\综艺一\2009亚洲音乐节\NOTES.txt 2009-11-05 21:01 276
NOTES.txt E:\vod\综艺一\2009集善嘉年华晚会\NOTES.txt 2009-11-05 21:01 276
notes.txt E:\vod\综艺一\S.H.E-SHERO\notes.txt 2010-03-30 13:51 2787
NOTES.txt E:\vod\综艺一\布兰妮_禁区之旅_演唱会\NOTES.txt 2008-10-07 17:47 322
NOTES.txt E:\vod\综艺一\湖南卫视2009-2010跨年演唱会\NOTES.txt 2009-12-18 22:43 265
NOTES.txt E:\vod\综艺一\第12届电影金凤凰奖颁奖典礼晚会\NOTES.txt 2009-09-28 09:16 305
NOTES.txt E:\vod\综艺一\美女厨房II\NOTES.txt 2009-04-29 05:11 806
NOTES.txt E:\vod\综艺一\背后的故事20100314期(刘青云)\NOTES.txt 2010-03-18 05:00 975
notes.txt E:\vod\综艺一\超级偶像20100327\notes.txt 2010-03-30 13:08 403
NOTES.txt E:\vod\综艺一\超级星光大道20100326\NOTES.txt 2009-04-03 11:57 709
NOTES.txt E:\vod\综艺一\迈克尔杰克逊布加勒斯特92演唱会\NOTES.txt 2010-01-14 05:20 2924
NOTES.txt E:\vod\综艺一\迈克尔杰克逊:就是这样\NOTES.txt 2010-01-14 05:22 1145
NOTES.txt E:\vod\综艺一\郭富城2008舞林正传演唱会\NOTES.txt 2009-03-06 01:00 1103
notes.txt E:\vod\综艺一\钟欣桐-人人弹起\notes.txt 2010-03-30 13:52 1435
notes.txt E:\vod\综艺一\陈慧琳-微光\notes.txt 2010-03-30 13:58 1149
NOTES.txt E:\vod\综艺一\鲁豫有约\NOTES.txt 2009-11-05 21:01 276
电影资料(样板).txt E:\vod\综艺一\2009魅力·中国鸟巢夏季音乐会\电影资料(样板).txt 2010-04-23 17:21 1556
电影资料(样板).txt E:\vod\综艺一\2010_Wrestlemania_26\电影资料(样板).txt 2010-04-10 12:30 498
周杰伦 E:\vod\综艺一\周杰伦 龙战骑士\电影资料(样板).txt 2009-03-06 01:01
电影资料(样板).txt E:\vod\综艺一\天天向上20100416期\电影资料(样板).txt 2010-04-05 14:12 649
电影资料(样板).txt E:\vod\综艺一\学友光年07香港站\电影资料(样板).txt 2009-02-19 07:42 2539
电影资料(样板).txt E:\vod\综艺一\小虎队1995年虎啸龙腾狂飙演唱会\电影资料(样板).txt 2010-04-12 11:33 1293
电影资料(样板).txt E:\vod\综艺一\情书第1季12代全集\电影资料(样板).txt 2010-04-14 11:00 1682
电影资料(样板).txt E:\vod\综艺一\我猜20100424\电影资料(样板).txt 2009-12-18 22:43 265
电影资料(样板).txt E:\vod\综艺一\超级游戏奖门人大爆发\电影资料(样板).txt 2010-04-21 14:23 1272
是这样的格式不?
努力学习,努力挣分

TOP

还需要排版不?我上面的输出是按照文件夹的排序来顺序输出的,有点乱哦。
sort排序,但是他不分大小写!

[ 本帖最后由 sgaizxt001 于 2010-4-26 21:21 编辑 ]
努力学习,努力挣分

TOP

返回列表