是的,我确实看到了:使用 Windows 批处理文件删除重复文件
但我无法修改它来检查我指定的每个子文件夹,我有:
del "c:\...\Pictures\*\*-001.*"
但它不喜欢这样。我只需要深入一个文件夹(每个子文件夹代表一个月),而不需要检查Pictures\
根目录。
我尝试过这个:
FOR %%F IN ("C:\...\Pictures\") DO FOR %%f IN ("C:\...\Pictures\%%F\*-001.JPG") del "%%f"
但这仍然不正确。有人能帮我一下吗?我在批处理文件方面的经验非常有限。
答案1
设置你的 real%startfolder%
并查看输出。如果输出良好,则删除echo
之前的内容del
:
@echo off &SETLOCAL
SET "startfolder=."
FOR /r "%startfolder%" %%i IN (*) DO call:doit "%%~i"
goto:eof
:doit
SET "fname=%~nx1"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "fsize=!$%fname%!"
IF DEFINED $!fname! (
ENDLOCAL
IF "%fsize%"=="%~z1" ECHO DEL "%~1"
) ELSE (
ENDLOCAL
SET "$%~nx1=%~z1"
)
goto:eof
如果文件大小不同,代码就不会删除。