找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24526|回复: 3

[文件操作] [已解决]批处理如何查找并显示重复文件?

[复制链接]
发表于 2013-12-3 22:07:21 | 显示全部楼层 |阅读模式
本帖最后由 zhanglei1371 于 2013-12-4 11:47 编辑

在我的优盘I中存在不少重复文件,分布在不同的文件夹中,如何用批处理命令将重复文件的路径输出到文本并显示重复次数?
如I:\12\3s.jpg和I:\46\25\3s.jpg和I:\77\3s.jpg
输出结果就显示为:
3s.jpg重复了三次,位置为:
I:\12\3s.jp
I:\46\25\3s.jpg
I:\77\3s.jpg
其他的以此类推

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-12-3 23:59:49 | 显示全部楼层
本帖最后由 apang 于 2013-12-4 16:10 编辑
  1. set x=Nothing '&cls&dir/a-d/b/s I:\* | cscript -nologo -e:vbscript "%~0" &pause&exit/b

  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set dic = CreateObject("Scripting.Dictionary")
  4. Do Until WScript.StdIn.AtEndOfStream
  5.     file = WScript.StdIn.ReadLine
  6.     name = LCase(Right(file,Len(file)-InStrRev(file,"")))
  7.     If dic.Exists(name) Then
  8.         dic.Item(name) = dic.Item(name) & vbCrLf & file
  9.     Else dic.Add name,file
  10.     End If
  11. Loop

  12. For Each a in dic.Keys
  13.    If InStr(dic.Item(a),vbCrLf) Then
  14.       n = UBound(Split(dic.Item(a),vbCrLf)) + 1
  15.       str = str & a & "重复了" & n & "次,位置:" & vbCrLf
  16.       str = str & dic.Item(a) & vbCrLf & vbCrLf
  17.    End If
  18. Next

  19. fso.CreateTextFile("Result.txt",true).Write str
复制代码

评分

参与人数 1技术 +1 收起 理由
zhanglei1371 + 1 thanks

查看全部评分

 楼主| 发表于 2013-12-4 10:28:29 | 显示全部楼层
回复 2# apang


    感谢阿胖大师的解答!
还想再多问下,在cscript后可执行的其他脚本,除了vbs和jscript外,还有没其他的?
发表于 2013-12-4 16:28:19 | 显示全部楼层
回复 3# zhanglei1371


    菜鸟一只,不是什么大师
vbs我也是新手,其它的我不知道。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 23:39 , Processed in 0.030993 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表