. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,490 声望值: 2
精华: 38,解答: 6
#1 旧 2005-09-07, 16:32:04 默认 【原创】cmd脚本-重复文件查找
hitme 当前离线  

查找重复文件的工具CMD版

重复文件特征为文件名,文件大小,修改时间
看看能不能再加上crc校验,文件数量多时,已经很慢了,慢死了

用法:目标路径下直接运行

代码:
@echo off

echo.
echo....重复文件查找,等等待...
echo.written by hitme 2005.9.8
echo.

del tmp.txt 2>nul
for /f "delims=" %%i in ('dir /s/b/aa %*                                                                       ') do (
			echo.%%~ti  %%~nxi  %%~zi\%%~dpi>>tmp.txt
)


(echo.^<html^>
 echo.^<head^>
 echo.^<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/^>
 echo.^<style type="text/css"^>
 echo.^<!-- 
 echo. a:active { text-decoration: none; color: red; fond: verdana; font-size: 10pt }
 echo. a:visited { text-decoration: none; color: green; fond: verdana; font-size: 10pt }
 echo. a:link { text-decoration: none; fond: verdana; font-size: 10pt }
 echo. --^>
 echo.^</style^>
 echo.^</head^>
 echo.^<body^>
 echo.^<center^>
 echo.^<b^>重复文件查找^</b^>^<br^>
 echo.By hitme. 2005.9.8.^<p^>^</p^>
 echo.^</center^>
 echo.^<center^>
 echo.^<table border="1" cellspacing="0"^>
 echo.^<tr^>^<th^>文件名^</th^>^<th^>路径^</th^>^</tr^>)>list.htm 

setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1* delims=\" %%i in ('sort /t %temp% tmp.txt') do (
				if "!n!"=="%%i" (
					echo.^<tr valign="top"^>^<td align="left"^>%%i^</td^>^<td align="left"^>^<a href="%%j" target="_blank"^>%%j^</a^>^</td^>^<tr^>>>list.htm
					if "!m!" neq "" (
							echo.^<tr valign="top"^>^<td align="left"^>!n!^</td^>^<td align="left"^>^<a href="!m!" target="_blank"^>!m!^</a^>^</td^>^<tr^>>>list.htm)
							set m=) else (
									set n=%%i
									set m=%%j)
				
				
)

endlocal

(echo.^</table^>
 echo.^</center^>^</body^>
 echo.^</html^>)>>list.htm
del tmp.txt 
start list.htm
上传的附件
文件类型: rar dupfilefinder_cmd.rar (1.2 KB, 22 次查看)

此帖于 2005-09-08 12:28:51 被 hitme 编辑. .
liummmm_cn
 
liummmm_cn 的头像
核心会员
 
资 料:
注册日期: Dec 2001
帖子: 2,153 声望值: 3
精华: 0,解答: 1
#2 旧 2005-09-07, 16:42:32 默认
liummmm_cn 当前离线  

杀人了......头大了......云,这得啥时候才能学完亚...
star.c
 
star.c 的头像
高级会员
 
资 料:
注册日期: Oct 2001
帖子: 960 声望值: 3
精华: 0
#3 旧 2005-09-07, 17:04:06 默认
star.c 当前离线  

找出来以后能不能删除其中一个。不然也没有用。
ultrac
 
ultrac 的头像
热心会员
 
资 料:
注册日期: Mar 2005
帖子: 2,540 声望值: 5
精华: 0,解答: 3
#4 旧 2005-09-07, 17:18:51 默认
ultrac 当前离线  

嗯……
在MP3和PIC文件夹里试试看。
landhawk
 
landhawk 的头像
游客
 
资 料:
注册日期: May 2002
帖子: 228 声望值: 0
精华: 0
#5 旧 2005-09-07, 17:21:09 默认
landhawk 当前离线  

干吗这样麻烦啊,不如用VB什么的写个程序简单啊
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,490 声望值: 2
精华: 38,解答: 6
#6 旧 2005-09-08, 11:54:20 默认
hitme 当前离线  

引用:
作者: star.c
找出来以后能不能删除其中一个。不然也没有用。

这个。。。不好办,假设有3个重复同名文件,删除其中任意两个?哪个运气好呢?
删除操作还是手动谨慎些的好

引用:
作者: landhawk
干吗这样麻烦啊,不如用VB什么的写个程序简单啊
呵呵
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,490 声望值: 2
精华: 38,解答: 6
#7 旧 2005-09-08, 12:29:55 默认
hitme 当前离线  

修正几处bug,顶楼更新

借用fsum部分功能,再附个加强版。
在文件名,文件大小,修改时间相同的基础上,计算相对应的CRC值,方便判断文件同一。

代码:
@echo off

echo.
echo....重复文件查找,等等待...
echo.written by hitme 2005.9.8
echo.

del tmp.txt 2>nul
for /f "delims=" %%i in ('dir /s/b/aa %*                                                                 ') do (
			echo.%%~ti  %%~nxi  %%~zi/%%~dpi/%%~nxi>>tmp.txt
)


(echo.^<html^>
 echo.^<head^>
 echo.^<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/^>
 echo.^<style type="text/css"^>
 echo.^<!-- 
 echo. a:active { text-decoration: none; color: red; fond: verdana; font-size: 10pt }
 echo. a:visited { text-decoration: none; color: green; fond: verdana; font-size: 10pt }
 echo. a:link { text-decoration: none; fond: verdana; font-size: 10pt }
 echo. --^>
 echo.^</style^>
 echo.^</head^>
 echo.^<body^>
 echo.^<center^>
 echo.^<b^>重复文件查找^</b^>^<br^>
 echo.By hitme. 2005.9.8.^<p^>^</p^>
 echo.^</center^>
 echo.^<center^>
 echo.^<table border="1" cellspacing="0"^>
 echo.^<tr^>^<th^>文件名^</th^>^<th^>CRC^</th^>^<th^>路径^</th^>^</tr^>)>list.htm 

setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1-3 delims=/" %%i in ('sort /t %temp% tmp.txt') do (
				if "!n!"=="%%i" (
					set j=%%j
					for /f "delims=" %%a in ('fsum -js -d"!j:~0,-1!" "%%k"^|more +4') do (
									set crc1=%%a
									set crc1=!crc1:~-8!
					)
					
					echo.^<tr valign="top"^>^<td align="left"^>%%i^</td^>^<td align="left"^>!crc1!^</td^>^<td align="left"^>^<a href="%%j" target="_blank"^>%%j^</a^>^</td^>^<tr^>>>list.htm
					if "!m!" neq "" (
							for /f "delims=" %%b in ('fsum -js -d"!m:~0,-1!" "!l!"^|more +4') do (
										set crc2=%%b
										set crc2=!crc2:~-8!
							)
							echo.^<tr valign="top"^>^<td align="left"^>!n!^</td^>^<td align="left"^>!crc2!^</td^>^<td align="left"^>^<a href="!m!" target="_blank"^>!m!^</a^>^</td^>^<tr^>>>list.htm)
							set m=) else (
									set n=%%i
									set m=%%j
									set l=%%k)
				
				
)

endlocal

(echo.^</table^>
 echo.^</center^>^</body^>
 echo.^</html^>)>>list.htm
del tmp.txt 
start list.htm
上传的附件
文件类型: rar S-dupfilefinder_cmd.rar (68.8 KB, 17 次查看)

此帖于 2005-09-08 12:35:36 被 hitme 编辑. .
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,490 声望值: 2
精华: 38,解答: 6
#8 旧 2005-09-08, 12:34:02 默认
hitme 当前离线  

cmd....cpu吃,内存挤,硬盘摇...不算文件小,简直一无是处。

真不想开拖拉机了,也学学autoit去。。
monster
 
monster 的头像
超级会员
 
资 料:
注册日期: May 2002
帖子: 1,915 声望值: 3
精华: 0,解答: 7
#9 旧 2005-09-08, 13:28:29 默认
monster 当前离线  

一些简单的东西还是你的cmd来的快,嘿嘿。不过autoit的功能是强大,希望能有autoit的强大功能的script出来。
胡1刀
 
胡1刀 的头像
待认证激活
 
资 料:
注册日期: Dec 2003
帖子: 168 声望值: 2
精华: 0
#10 旧 2005-09-08, 14:44:58 默认
胡1刀 当前离线  

帮我写个玩意,把电脑里面重复的小电影找出来删掉
x_x
 
x_x 的头像
超级会员
 
资 料:
注册日期: Sep 2002
帖子: 1,831 声望值: 3
精华: 2
#11 旧 2005-09-08, 14:54:20 默认
x_x 当前离线  

建议配合 ntfs hardlink
让重复的文件不会重复占用空间


try{ fucking_GFW(); }catch(exception e){ keep_fucking_GFW(e); }
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,490 声望值: 2
精华: 38,解答: 6
#12 旧 2005-09-08, 14:55:53 默认
hitme 当前离线  

引用:
作者: 胡1刀
帮我写个玩意,把电脑里面重复的小电影找出来删掉
为了你的技术有所提高,建议你看一遍再删除

此帖于 2005-09-08 15:08:21 被 hitme 编辑. .
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 06:36:46.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号