Mehrere Bilddateien mit bestimmten Kriterien löschen

470

Ich suche nach einer einfachen Möglichkeit, Bilder in meinem Wallpapers-Ordner mit Abmessungen von weniger als 1080x1920 zu löschen. Ich dachte, es könnte eine Art Skript / Befehl geben, der dies tun könnte. Ich habe einmal eine Scripting-Funktion in Windows selbst gefunden, aber ich habe wirklich nicht viel davon verstanden.

Jede Hilfe wäre dankbar!

0
Sie können das Open-Source-Programm "exiftool" verwenden, um die Dimensionen zu extrahieren: "exiftool -ImageSize ImageFilePath". Das Ergebnis kann dann in die horizontalen und vertikalen Dimensionen analysiert werden, die mit den Löschkriterien verglichen werden können. AFH vor 6 Jahren 0
Bitte beachten Sie, dass https://superuser.com kein kostenloser Skript- / Code-Schreibservice ist. Wenn Sie uns sagen, was Sie bisher versucht haben (einschließlich der Skripts / des Codes, die Sie bereits verwenden) und wo Sie stecken bleiben, können wir versuchen, bei bestimmten Problemen zu helfen. Sie sollten auch lesen [Wie kann ich eine gute Frage stellen?] (Https://superuser.com/help/how-to-ask). DavidPostill vor 6 Jahren 0
Sie stellen nicht einmal Ihr Betriebssystem zur Verfügung oder versuchen nicht, selbst ein Skript zu schreiben. DavidPostill vor 6 Jahren 0

1 Antwort auf die Frage

2
Nironda

Dies erreichen Sie am besten mit dem Exiftool . Laden Sie es herunter (achten Sie darauf, dass Sie die Windows-ausführbare Datei verwenden, nicht die zuerst aufgeführte Linux-Datei). Öffnen Sie einen Editor, fügen Sie den folgenden Code ein und speichern Sie ihn als "deletesmallwp.bat" (oder ändern Sie den Wert "Dateiname" entsprechend).

@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 

Ändern Sie die eingestellten Werte entsprechend den ersten Kommentarzeilen (REM). Führen Sie es dann aus (entweder über den Explorer oder über die Eingabeaufforderung (mit dem Bildordner als Parameter)). Hoffe, das ist es, wonach Sie gesucht haben / der Code ist leicht zu verstehen. Wenn Sie weitere Hilfe benötigen, fügen Sie Ihrer Frage am besten einen Kommentar hinzu.

Ich habe mich gefragt, seit wir über Tapeten sprechen, was passiert, wenn der Benutzer einen schwenkbaren Monitor hat (und diesen nutzt). Leider dehnt Windows standardmäßig das Bild aus. Aber mit UltraMon & Co ändert sich dies, so dass Sie st (ungeprüft) `(($ imagewidth <1920 und $ imageheight <1080) oder ($ imagewidth <1080 und $ imageheight <1920)) wollen Nironda vor 6 Jahren 0