[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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
其他的以此类推
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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

评分人数

TOP

回复 2# apang


    感谢阿胖大师的解答!
还想再多问下,在cscript后可执行的其他脚本,除了vbs和jscript外,还有没其他的?

TOP

回复 3# zhanglei1371


    菜鸟一只,不是什么大师
vbs我也是新手,其它的我不知道。。。

TOP

返回列表