Befehlszeile zum Zurückgeben von Bildeigenschaften

Befehlszeile zum Zurückgeben von Bildeigenschaften

Ich versuche, eine Textdatei zurückzugeben, die einige Details zu Bilddateien in einem Ordner und seinen Unterordnern enthält. Genauer gesagt:

  • Dateipfad
  • Bilderweiterung
  • Bildabmessungen
  • Aufnahmedatum
  • Kameramodell

Diese Eigenschaften sind möglicherweise nicht für alle Bilder verfügbar. Ich bin mir noch nicht sicher, ob das ein Problem darstellt.

Das Abrufen der Dateiliste ist in Ordnung.DIR C:\[...]\FOLDER\*.* /S| (Ich finde). Beim nächsten Teil bin ich mir nicht sicher; ich habe Informationen zu anderen Betriebssystemen gefunden und auch WMICVorschläge dazu gehört. Ich habe versucht, das mit einem Test an einer einzelnen Datei zu verwenden:

wmic datafile where Name="C:\[...]\IMG_5443.JPG" get Name,FileType > "C:\[...]\info.txt"

Aber es kommt zurück Error: Invalid query, also nehme ich an, dass WMIC nicht mit Bildern funktioniert oder dass zumindest einige der Argumente geändert werden müssen.

Mir fällt auch auf, dass die Dimensionen bei der Eingabe wmic datafile get/?nicht als eine der verfügbaren Eigenschaften aufgeführt sind. Das ist ungefähr alles, was ich zur Fehlerbehebung weiß.

Gibt es eine Möglichkeit, Eigenschaften einesBildDatei (oder Dateiliste) in Windows über die Befehlszeile. Wenn nicht, bin ich für alles offen, was keine Installation zusätzlicher Software erfordert. Irgendwelche Vorschläge?

Antwort1

Wie kann ich in Windows über die Befehlszeile die Eigenschaften einer Bilddatei abrufen?

Sie können dies mit PowerShell tun.

Häufig ausgefüllte Metadaten für Bilddateien enthalten die Kamera, die Blendenzahl, die Auflösung und andere nützliche Informationen zum Foto. Dies kann für jeden, der Fotos macht, äußerst nützlich sein. Die Bildmetadaten finden Sie ganz einfach auf der Registerkarte „Datei“ für das Foto, indem Sie auf „Eigenschaften“ und dann auf „Details“ klicken.

...

Um diese Art von Metadaten mit Windows PowerShell zu untersuchen, muss man das Shell.Application-COM-Objekt verwenden, eine Verbindung zu einer Datei herstellen und dann den Metadaten-Eigenschaftenbehälter durchgehen. Diese Technik ist etwas umständlich. Glücklicherweise kann ich für diese Aufgabe dieselbe Funktion verwenden, die ich gestern geschrieben habe.

Beachten Sie die kompletteDateimetadaten abrufenDie Funktion ist im Script Center Repository verfügbar.

...

Stellen Sie sicher, dass Sie die Ergebnisse speichern

Da das Skript möglicherweise Tausende von Fotos durchlaufen muss und für jedes Foto mehrere hundert Metadatenattribute durchsuchen muss, dauert die Ausführung des Skripts einige Zeit. Am besten speichern Sie die Ergebnisse in einer Variablen. Dadurch können die Daten nach der Ausführung sortiert und nach der Erfassung verarbeitet werden.

Das Get-FileMetaDataReturnObject.ps1Skript enthält eine einzelne Funktion. Die Funktion ist die Get- FileMetadataFunktion. Ich lade die Funktion in die Windows PowerShell ISE und führe sie aus, um die Funktion in den Speicher zu kopieren. Danach rufe ich die Funktion auf und übergebe ihr ein Array von Ordnerpfaden. Ich erhalte das Array von Ordnerpfaden mithilfe des Get-ChildItemCmdlets. Hier ist der Befehl, der eine rekursive Suche nach einem Ordner mit dem Namen „pics“ durchführt und die Verzeichnispfade in diesem Ordner herauszieht. Dies ist ein einzeiliger Befehl mit Wrapper.

$picMetadata = Get-FileMetaData -folder (Get-childitem E:\pics -Recurse -Directory).FullName

...

Schreiben Sie es in eine Datei

Nachdem ich nun weiß, dass der Befehl die gewünschte Ausgabe erzeugt, leite ich die Ergebnisse Export-CSVwie hier gezeigt an das Cmdlet weiter (dies ist ein einzeiliger Befehl):

$picMetadata | 
Select 'camera model', dimensions, f-stop, 'flash mode', 'iso speed', 'exposure time', 'focal length', size, path |
Export-CSV -Path c:\fso\photoMetadata.csv -NoTypeInformation

QuelleVerwenden Sie PowerShell, um Metadaten aus Fotodateien zu finden

Lesen Sie den obigen Quellenlink, um zu sehen, welche anderen Metadaten verfügbar sind.

Antwort2

Ohne Installation externer Programme:tooltipinfo.batoderimginfo.bat- Übergeben Sie einfach den Dateinamen (oder den Pfad, wenn er sich nicht im selben Verzeichnis befindet), um die Informationen zu erhalten.

Antwort3

Es gibt viele Tools für die Befehlszeile, die Bildmetadaten abrufen/extrahieren können.

  1. IrfanView
  2. Exiftool
  3. Konvertieren

> "C\Program Files\IrfanView\i_view64.exe" *.jpg /info=Jpeg_Info.txt /fullinfo

Beispielausgabe (nur 1 Bild):

>type Jpeg_Info.txt
[Scan-100210-0002.jpg]
File name = Scan-100210-0002.jpg
Directory =
Compression = JPEG, quality: 90, subsampling ON (2x2)
Resolution = 300 x 300 DPI
Image dimensions = 2206 x 3264  Pixels (7.20 MPixels) (1.48)
Print size = 18.7 x 27.6 cm; 7.35 x 10.88 inches
Color depth = 16,7 Million   (24 BitsPerPixel)
Number of unique colors = 83260
Disk size = 918.01 KB (940.042 Bytes)
Current memory size = 20.61  MB (21.607.720 Bytes)
File date/time = 2010-02-10 / 21:59:07

- EXIF -
Make - Canon
Model - N650U
ExifOffset - 86
DateTimeDigitized - 2010:02:10 21:59:01

> exiftool  Scan-100210-0001.jpg
ExifTool Version Number         : 9.73
File Name                       : Scan-100210-0001.jpg
Directory                       : .
File Size                       : 884 kB
File Modification Date/Time     : 2010:02:10 21:21:28+01:00
File Access Date/Time           : 2010:02:10 21:21:22+01:00
File Creation Date/Time         : 2010:02:10 21:21:22+01:00
File Permissions                : rw-rw-rw-
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : inches
X Resolution                    : 300
Y Resolution                    : 300
Exif Byte Order                 : Little-endian (Intel, II)
Make                            : Canon
Camera Model Name               : N650U
Page Name                       : Reflective
Create Date                     : 2010:02:10 20:21:22
Image Width                     : 2202
Image Height                    : 3264
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 2202x3264

> nconvert -fullinfo Scan-100210-0001.jpg 2>Nul
** NCONVERT v6.88 (c) 1991-2016 Pierre-E Gougelet (Apr 29 2016/17:06:08) **
        Version for Windows Xp/Vista/7 x64  (All rights reserved)
** This is freeware software (for non-commercial use)
Scan-100210-0001.jpg : Success
    Format               : JPEG TrueColor (v1.1)
    Name                 : jpeg
    Compression          : JPEG
    Width                : 2202
    Height               : 3264
    Components per pixel : 3
    Bits per component   : 8
    Depth                : 24
    # colors             : 16777216
    Color model          : RGB
    Bytes Per Plane      : 6606
    Orientation          : Top Left
    Xdpi                 : 300
    Ydpi                 : 300
    Page(s)              : 1
    Metadata             : ( EXIF )
EXIF:
  Camera:
    Camera Manufacturer  (0x010f): Canon
    Camera Model         (0x0110): N650U
  Image:
    Date digitized       (0x9004): 2010:02:10 20:21:22

Mit mehr oder weniger Aufwand kann die Ausgabe auf die relevanten Eigenschaften gefiltert und mit Batchdateien nach Wunsch formatiert werden.

verwandte Informationen