我有一个包含多张照片的文件夹,每张照片有两种不同的分辨率。我想删除分辨率较低的照片。例如,该文件夹包含以下文件WP_20140917_19_15_04_Pro.jpg和WP_20140917_19_15_04_Pro__highres.jpg。我想保留文件名中高位的所有照片,并使用CMD删除另一张照片。
一个重要的注意事项是,如果照片的高版本存在,它应该只删除照片,因为该文件夹并不总是包含高级版本的照片。
我知道如何在重复返回某个单词时删除文件(例如highres),但我不能这样做,这就是为什么我不知道如何启动。感谢所有帮助。
答案 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
,如果存在包含修改名称的文件,请将其删除。
---编辑:已删除文件的附加计数。