批处理文件删除重复项,嵌套一次

批处理文件删除重复项,嵌套一次

是的,我确实看到了:使用 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

如果文件大小不同,代码就不会删除。

相关内容