Via Batch die Abmessung von JPG-Dateien auslesen und in bestimmte Ordner verschieben

Mitglied: rg-87

rg-87 (Level 1) - Jetzt verbinden

14.08.2011, aktualisiert 18.10.2012, 6757 Aufrufe, 14 Kommentare

Hallo liebe Administrator.de-Gemeinde,

ich bekomme regelmäßig Ordner mit JPG-Dateien welche eine unterschiedliche Auflösung besitzen (2800x3633, 1000x744, usw.)
Jetzt würde ich gerne automatisiert, die JPG-Dateien anhand Ihrer Auflösung in bestimmte Ordner verschieben.

Das verschieben von Dateien sollte kein Problem sein, jedoch das Auslesen der Abmessung via Batch.
Ist das überhaupt möglich?

Danke im Voraus.

rg-87
Mitglied: 64748
64748 (Level 2)
14.08.2011 um 12:00 Uhr
Hallo rg-87,

bei Imagemagick gibt's das Tool "identify". Download hier: http://www.imagemagick.org/script/index.php

Beispiel hier
das solltest Du auch in einem Script verwenden können. Welches Betriebssystem nutzt Du denn? oder anders gefragt, hast Du Perl installiert?

Gruß

Markus
Bitte warten ..
Mitglied: bastla
14.08.2011, aktualisiert 18.10.2012
Hallo rg-87!

Sollte auch mit Bordmitteln gehen - zum Testen mit Deiner ungenannten Windows-Version nur mal mit einer (in Zeile 2 angegebenen) Datei:
Ähnliches hatten wir jedenfalls mal hier ...
[Edit] Um auch noch die Schleifen-Variante (incl "Verschiebe"-Ansatz) nachzureichen:
Wegen des jeweiligen "echo" (zum Testen) vor dem "move" werden die Befehle für das Verschieben nur angezeigt, aber noch nicht ausgeführt.
Soferne es sich bei den Zielordnern um Unterordner von "%Ordner%" handeln sollte, kann der Pfad dafür weg gelassen werden (während der Verarbeitung ist der "Bilder"-Ordner lt Zeile 2 aktuell).

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.08.2011 um 12:22 Uhr
Hallo rg-87.

Wenn du mit Bordmitteln arbeiten willst, kannst du ein VBScript nutzen.

getJpgDim.vbs
Beispielaufruf im Batch
Grüße
rubberman

<EDIT: Hallo bastla. Wie (fast) immer einen Hauch schneller ;-) face-wink />
<EDIT2: .Quit in der ersten Zeile ergänzt />
Bitte warten ..
Mitglied: 64748
64748 (Level 2)
14.08.2011 um 12:48 Uhr
Hallo nochmal,

ich hab hier mit Bordmitteln diese Lösung:
Das Skript läuft im Ordner wo die Bilder sind, sonst muss der Pfad angepasst werden.
Perl und imagemagick muss installiert sein.die Namen "GrosseBilder" und "KleineBilder" sind die Verzeichnisse für die Bilder. Du kannst auch die Variable $size heranziehen wenn Du nach Dateigröße selektieren möchtest.

Gruß

Markus
Bitte warten ..
Mitglied: rubberman
14.08.2011 um 12:56 Uhr
Hallo Markus.
Zitat von @64748:
ich hab hier mit Bordmitteln diese Lösung:
[...]
Perl und imagemagick muss installiert sein.

Unter "mit Bordmitteln" verstehen zumindest bastla und ich so etwas wie "ohne zusätzliche Installation". Ist aber egal, das Ergebnis zählt... ;-) face-wink

Grüße
rubberman
Bitte warten ..
Mitglied: 64748
64748 (Level 2)
14.08.2011 um 13:04 Uhr
Hallo rubberman,
Zitat von @rubberman:
Unter "mit Bordmitteln" verstehen zumindest bastla und ich so etwas wie "ohne zusätzliche Installation".
Ist aber egal, das Ergebnis zählt... ;-) face-wink
naja, ich auch. Ich hab hier Slackware64-13.37, normale Installation, da sind das die Bordmittel ;-) face-wink

Aber ich habe bei nochmaligem Lesen des Beitrags vom TO gelesen, dass er batch meint, also Windows (es gibt Perl auch für Windows und wenn man der Perl-Mailingliste glauben darf wird's auch von vielen Admins eingesetzt http://strawberryperl.com/).

Gruß und noch einen schönen Sonntag

Markus
Bitte warten ..
Mitglied: rubberman
14.08.2011 um 13:31 Uhr
Hallo Markus.

Das #!/usr/bin/perl hätte mir eigentlich schon sagen müssen, dass du dich auf Linux beziehst. So ist es, wenn man den Code gar nicht erst liest (weil man ihn nicht versteht ;-) face-wink).

Auch dir einen schönen Sonntag.
rubberman
Bitte warten ..
Mitglied: rg-87
14.08.2011 um 13:36 Uhr
Das nen ich Hilfe :-) face-smile
Nun zu der Frage welches Betriebssystem eingesetzt wird. -> Windows 7
Bordmittel immer gerne genommen.

Ich probier da jetzt mal was aus und melde mich dann mit einem Ergebnis.

Danke für die Hilfe.
Bitte warten ..
Mitglied: 64748
64748 (Level 2)
14.08.2011 um 13:47 Uhr
Hallo rubberman,

wenn der Dateiname des Programms ein .pl-Suffix hat, also z.B. bilder.pl, dann kann man den gleichen Code auch auf einem Windowsrechner (wenn Perl installiert ist) laufen lassen (weil das "#" in der ersten Zeile auf nicht-Unix Systemen nur als Anfang einer Kommentarzeile aufgefasst wird).

Markus
Bitte warten ..
Mitglied: bastla
14.08.2011 um 14:08 Uhr
Hallo rubberman!

In Zeile 1 ist Dir ein ".Quit" abhanden gekommen ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.08.2011 um 14:16 Uhr
Hallo bastla,

danke, ich hab's wiedergefunden und an die richtige Stelle gelegt ;-) face-wink

Grüße
rubberman
Bitte warten ..
Mitglied: rg-87
14.08.2011 um 14:38 Uhr
Hmm, das Skript listet alles fein säuberlich auf. :-) face-smile
Jedoch bin ich nicht in der Lage, die Dateien anhand ihrer Abmessung in einen Unterordner zu verschieben.
Der Unterordner trägt die Abmessung als Ordnername.
Bitte warten ..
Mitglied: bastla
14.08.2011 um 14:41 Uhr
Hallo rg-87!

Da Du nicht so genau beschrieben hattest, wie die Zielordner heißen sollen, habe ich im (inzwischen ergänzten) Schleifen-Ansatz oben Annahmen treffen müssen - da sich aber Breite und Höhe in den Variablen %%j und %%k befinden, kannst Du daraus ja den benötigten Ordnernamen zusammensetzen - etwa so (als Ersatz der Zeilen 12-16):
Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.08.2011 um 14:46 Uhr
Hallo rg-87,

ungetestet zu meinem Script, folgender Aufruf:
Grüße
rubberman
Bitte warten ..
Heiß diskutierte Inhalte
MikroTik RouterOS
Simples VLAN bringt mich zur Verzweiflung
gelöst Daniel26Vor 1 TagFrageMikroTik RouterOS28 Kommentare

Moin, ich bin sehr neu im Mikrotik-Bereich, aber schon dabei, aufzuegeben. Wir verbauen in unserer Hardware Switche von Mikrotik. Bisher waren da Netgear-Teile drin, ...

LAN, WAN, Wireless
Switch läuft, ist aber nicht erreichbar
gelöst AndiPeeVor 1 TagFrageLAN, WAN, Wireless19 Kommentare

Hallo zusammen, mein Problemfall einleitend kurz umrissen: Privates Netzwerk Es funktioniert grundsätzlich, allerdings habe ich immer mal ein paar Ausfälle im WLAN-Netzwerk und bin ...

Microsoft
STRG + ALT + ENTF
TezzlaVor 17 StundenAllgemeinMicrosoft11 Kommentare

Mahlzeit zusammen, wir haben gerade im Kollegenkreis über Sinn und Unsinn der Sperrbildschirmentriegelung STRG + ALT + ENTF unter Win10 diskutiert. Mich würde hierzu ...

VB for Applications
Auf SQL Datenbank schreiben welche Sich im Firmennetzwerk befindet
RSST-SORVor 1 TagFrageVB for Applications12 Kommentare

Hallo Ich habe ein funktionierendes VBA Makro im EXCEL welches mit: conn.Open "driver={SQL Server};" & _ "server=RSST-OFFICEIII\RSSTSQLSERVER;database=RSSTZeiterfassung;" Daten in die Tabelle schreibt Nun würde ...

Windows 10
SMB Performance VPN
Guhl22Vor 1 TagFrageWindows 104 Kommentare

Hallo zusammen, wir stellen bei uns in der Firma ein sehr merkwürdiges Phänomen fest. Zugriffe über VPN auf gemappte Netzlaufwerke (über vbs Logon Skript ...

E-Mail
Alternative zu horde webmail
fisch56Vor 1 TagFrageE-Mail6 Kommentare

Hallo, ich habe das horde webmail auf meinem Server, macht allerdings Probleme. Suche daher eine Alternative. Das Postfach hat viele Unterordner, die z.B. bei ...

Switche und Hubs
Zwei Lancom GS-315XP Switche VLAN verbinden
wieoderwasVor 23 StundenFrageSwitche und Hubs13 Kommentare

Hallo zusammen, wir haben zwei neue Lancom GS-315XP Switche bekommen. An einem dieser Switche sind Lancom Accesspoints angeschlossen. Ich verzweifel gerade an der Verbindung ...

Video & Streaming
Streamingplattform mit eigenen Servern
gelöst icegetVor 18 StundenFrageVideo & Streaming5 Kommentare

Hallo liebe Community, ich würde gerne via Amazaon AWS (oder andere Cloudanbietern) mehrere Serverinstanzen (Streaming) starten, um z.B. 2000 Personen den selben Stream den ...