删除CMD中具有几乎相同文件名的文件



我有一个文件夹,里面有多张照片,每张照片有两种不同的分辨率。我想删除分辨率较低的照片。例如,该文件夹包含以下文件WP_20140917_19_15_04_Pro.jpg和WP_20140917_19_15_04_Pro__highres.jpg。我想保留文件名中带有高分辨率的所有照片,并使用CMD删除另一张照片。

一个重要的注意事项是,仅当存在照片的高分辨率版本时,它才应删除照片,因为该文件夹并不总是包含照片的高分辨率版本。

我知道当某个单词重复返回(例如高分辨率)时如何删除文件,但我不能做相反的事情,这就是为什么我不知道如何开始。感谢所有帮助。

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:sourcedir"
set /a count=0
FOR /f "delims=" %%a IN (
 'dir /b /a-d "%sourcedir%*__highres.*" '
 ) DO (
 SET "name=%%a"
 SET "name=!name:__highres=!"
 IF EXIST "%sourcedir%!name!" (
  ECHO(DEL "%sourcedir%!name!"
  set /a count+=1
 )
)
echo %count% files deleted.
GOTO :EOF

您需要更改sourcedir的设置以适合您的情况。

所需的 DEL 命令仅用于测试目的ECHO验证命令正确后,将ECHO(DEL更改为DEL以实际删除文件。

超级简单。读取目录,定位与模式匹配的所有文件 *__highres.* 。从名称中删除__highres,如果存在具有修改后名称的文件,请将其删除。

---编辑:已删除文件的添加计数。

最新更新