bat脚本删除文件夹下的重复文件

发布时间:2024年01月21日

需求:删除某个文件夹下重复的文件。例如文件名后带(1)(2)等等

脚本:

@echo off

rem 指定需要删除重复文件的目录。目录中不能有中文
set "dir=D:\Program Files (x86)\Tencent\WeChat Files\WeChat Files\wxid_uymfyk3nafnu22\FileStorage\File\2023-09"

:: 将目录下的所有文件名导入 src_file_name.txt 文件
for /r "%dir%" %%i in (*.*) do echo "%dir%\%%i"  >> src_file_name.txt

:: 将删除的文件名导入 del_file_name.txt 文件,并计数
set /a cnt = 0
for /r "%dir%" %%i in (*"(1)".*) do ( echo "%dir%\%%i"  >> del_file_name.txt
    del /a /f /q "%%i"
    set /a cnt+=1)
	
:: 不能直接删除)的这种,会误删
for /r "%dir%" %%i in (*"(2)".*) do ( echo "%dir%\%%i"  >> del_file_name.txt
    del /a /f /q "%%i"
    set /a cnt+=1)
	
for /r "%dir%" %%i in (*"(3)".*) do ( echo "%dir%\%%i"  >> del_file_name.txt
    del /a /f /q "%%i"
	set /a cnt+=1)
	
for /r "%dir%" %%i in (*"(4)".*) do ( echo "%dir%\%%i"  >> del_file_name.txt
    del /a /f /q "%%i"
	set /a cnt+=1)	
	
for /r "%dir%" %%i in (*"(5)".*) do ( echo "%dir%\%%i"  >> del_file_name.txt
    del /a /f /q "%%i"
	set /a cnt+=1)	
	
for /r "%dir%" %%i in (*"(6)".*) do ( echo "%dir%\%%i"  >> del_file_name.txt
    del /a /f /q "%%i"
	set /a cnt+=1)	

echo "The number of Deleted file: %cnt%" >> del_file_name.txt 
timeout /t 2 >nul

说明:

指定一个目录(不能包含中文),生成两个记录文件,执行删除文件,最后2s后关闭

参考:

bat脚本删除文件夹下的重复文件

文章来源:https://blog.csdn.net/fromVillageCoolBoy/article/details/135722913
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。