2016-03-02 65 views
1

我有一個文件夾中有多張照片,每張照片有兩種不同的分辨率。我想刪除分辨率較低的照片。例如,該文件夾包含以下文件WP_20140917_19_15_04_Pro.jpg和WP_20140917_19_15_04_Pro__highres.jpg。我想用文件名中的高分辨率保留所有照片,並使用CMD刪除另一張。刪除CMD中幾乎相同的文件名的文件

一個重要的注意事項是,如果照片的高分辨率版本存在,它應該只刪除照片,因爲該文件夾並不總是包含照片的高分辨率版本。

我知道如何在某個單詞重複返回時(如highres)刪除文件,但我不能做相反的事情,這就是爲什麼我不知道如何開始。所有的幫助表示讚賞。

回答

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,如果文件中存在修改後的名稱,請將其刪除。

---編輯:加入的已刪除文件的數量。

+0

謝謝。爲了確保我沒有改變echo(del del),我已經計算了高分辨率照片的數量,這也意味着被刪除文件的數量應該是相等的。我應該在批處理文件中包含哪些內容來顯示數字'已刪除'檔案? – Harun