Лучший способ добиться этого - использовать exiftool . Загрузите его (обязательно возьмите исполняемый файл Windows, а не файл Linux, указанный вначале). Откройте редактор, вставьте следующий код и сохраните его как «deletesmallwp.bat» (или измените значение «filename» соответственно)
@echo off REM SETLOCAL EnableDelayedExpansion REM Writes all img filenames smaller 1920/1080px for either a given parameter or a predefined folder into a txt file, then reads it and deletes all files written in there. REM Without -r, not recursive, so without sub-folders. REM "exifpath" needs to be changed to the path of the exiftool and "picpath" to the path of the pictures to be checked and deleted. REM No need to run as admin, as long as you have the proper file permissions to delete (change) ECHO Parameter: %1 REM Paths can be either absolute or relative to the folder of this batch file. See f.e. exifpath REM In this ex. the batch is saved in "Pictures" and the pics to delete are in "Pictures\Wallpapers" set exifpath=C:\Users\User\Pictures\exif\exiftool.exe set exifpath=exif\exiftool.exe set picpath=Wallpapers set exportfile=smallwp.txt set filename=deletesmallwp REM Check from where file was run and set working directory if needed. set batchpath=%0 set res= IF %batchpath% == %filename% set res=1 IF "%batchpath%" == "%filename%.bat" set res=1 IF NOT DEFINED res ( cd /D %~dp0 ) REM Check if file exists, else skip to the end IF NOT EXIST %exifpath% GOTO NOPORT REM Some info IF [%1] EQU [] ( ECHO UNDEFINED) ECHO. IF NOT DEFINED res ECHO INFO: Changed working directory ECHO. REM Check if a parameter is given, then run exiftool to create a list with images IF [%1] EQU [] ( ECHO -Direct: '%picpath%' %exifpath% -if "$imagesize and ($imagewidth<1920 or $imageheight<1080)" -filename -T -L %picpath% >%exportfile% ) ELSE ( ECHO -Parameter 'see above' %exifpath% -if "$imagesize and ($imagewidth<1920 or $imageheight<1080)" -filename -T -L %1 >%exportfile% ) ECHO. ECHO If you don't want certain files to be deleted, now might be a good time to look into %exportfile%. ECHO. pause ECHO. REM REM Delete every file found in the file and print the success for /F "tokens=*" %%A in (%exportfile%) do del "%picpath%\%%A" 2>&1 >nul|findstr "^" >nul && echo FAILURE with %%A || echo DELETED ECHO. goto :ENDE :NOPORT echo "Portable ExifTool missing" goto :ENDE :ENDE pause
Измените установленные значения в соответствии с первой строкой комментария (REM). Затем запустите его (из проводника или из командной строки (с папкой изображения в качестве параметра)). Надеюсь, это то, что вы искали / код достаточно прост для понимания. Если вам нужна дополнительная помощь, лучше всего добавить комментарий к вашему вопросу.