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

时间:2016-03-02 22:14:35

标签: batch-file cmd

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

一个重要的注意事项是,如果照片的高版本存在,它应该只删除照片,因为该文件夹并不总是包含高级版本的照片。

我知道如何在重复返回某个单词时删除文件(例如highres),但我不能这样做,这就是为什么我不知道如何启动。感谢所有帮助。

1 个答案:

答案 0 :(得分:4)

@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,如果存在包含修改名称的文件,请将其删除。

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