删除重复文件批处理代码.doc
文本预览下载声明
@echo offsetlocal ENABLEDELAYEDEXPANSION
title 清理相同的文件-code by rs369007/2014/6/20
:start
set /p act_path=输入目录=
if not exist !act_path! (echo 输入目录不存在,请重新输入ping -w 1000 -n 2 127.1nul 2nulclsgoto start)
set /a var=!time:~6,-3! 2nul
set /a total=0 2nul
set /a del_num=0 2nul
set sort=C:\WINDOWS\system32\sort.exe
for /f delims=\ %%j in (!act_path!) do set backup_folder=%%j\rs-backup_folder\!var!md !backup_folder! 2nul
set tmp=c:\tmprd !tmp!nul 2nul
if not exist !tmp! (md !tmp!nul 2nul) else (del /f /s /q !tmp!nul 2nul)
set rec_file=!backup_folder!\清理记录.txt
set /a hour=!time:~0,-9! 2nul
set /a minute=!time:~3,-6! 2nul
set /a second=!time:~6,-3! 2nul
echo.echo 程序正在对文件进行分类,请耐心等待...
::分类获取文件列表
pushd !act_path!
for /R %%i in (*) do (
set extension=%%~xiset extension=!extension:~-3!
echo %%~zi;%%~dpnxi;%%~xi;%%~ti;%%~ni!tmp!\!extension!%%~zi.txt 2nul
)
::分类获取完成
pushd !tmp!
::开始比较,记录重复文件,记录复件,而不记录原件
clsecho.echo 开始筛选相同文件...ping -w 1000 -n 2 127.1nul 2nul
echo !date!!time!!rec_file! 2nul
for /R %%i in (*) do (
set filename=%%~nxi
set /a st_count=0
for /f tokens=1-5 delims=; %%j in (!filename!) do (
set /a st_count+=1
if !st_count! NEQ !del_num! (
set filesize=%%j
set filetime=%%m
set in_filename=%%n
set fullpath=%%k
set /a nd_count=0
echo %%k 2nul
for /f tokens=1-5 delims=; %%j in (!filename!) do (
set /a nd_count+=1
if !nd_count! GTR !st_count! (
if !filesize!==%%j (
if !filetime!==%%m (
echo !in_filename!tmp 2nul
(findstr /C:%%n tmpnul 2nul(echo !fullpath!;!filesize!!rec_file! 2nul))||(echo %%k;%%j!rec_file! 2nul)
set /a del_num=!nd_count!
)
)
)
)
)
)
)
pushd !backup_folder!
clsecho.echo 开始删除相同文件:ping -w 1000 -n 2 127.1nul 2nul
if exist 清理记录.txt (
for /f skip=1 tokens=1-2 delims=; %%j in (清理记录.txt) do (
copy %%j !backup_folder!nul 2nul
del /f /s /q %%j
set /a total+=%%k
)
) else (
echo 没有发现相同的文件。)
echo.echo (存放在!rec_file!) 2nulecho.
set /a total=!total!/1024
set /a total=!total!/1024
echo
显示全部