Ich versuche, eine Textdatei mit einigen Details zu Bilddateien in einem Ordner und seinen Unterordnern zurückzugeben. Speziell:
Diese Eigenschaften sind möglicherweise nicht für alle Bilder verfügbar. Ich bin mir nicht sicher, ob dies noch ein Problem sein wird.
Das Abrufen der Dateiliste ist in Ordnung. DIR C:\[...]\FOLDER\*.* /S|
(glaube ich) . Es ist der nächste Teil, bei dem ich mir nicht sicher bin. Ich habe Informationen zu anderen Betriebssystemen gefunden und WMIC
vorgeschlagen. Ich habe versucht, dies mit einem Test für eine einzelne Datei zu verwenden:
wmic datafile where Name="C:\[...]\IMG_5443.JPG" get Name,FileType > "C:\[...]\info.txt"
Es wird jedoch Error: Invalid query
zurückgegeben, sodass ich vermute, dass WMIC nicht mit Bildern funktioniert oder zumindest einige der Argumente geändert werden müssen.
Wenn ich wmic datafile get/?
eingebe, bemerke ich auch, dass Dimensionen nicht als eine der verfügbaren Eigenschaften aufgeführt sind. Das ist ungefähr so viel Problembehandlung, wie ich tun kann.
Gibt es eine Möglichkeit, Eigenschaften einer Image-Datei (oder einer Liste von Dateien) in Windows über die Befehlszeile zurückzugeben? Wenn nicht, bin ich offen für alles, was keine Installation zusätzlicher Software erfordert. Irgendwelche Vorschläge?
Sie können dies mit PowerShell tun.
Üblicherweise ausgefüllte Metadaten für Bilddateien enthalten die Kamera, die Blende, 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 können auf der Registerkarte Datei für das Foto leicht gefunden werden, indem Sie auf Eigenschaften und dann auf Details klicken.
...
Wenn Sie Windows PowerShell zum Untersuchen dieser Art von Metadaten verwenden möchten, müssen Sie das Shell.Application-COM-Objekt verwenden, eine Verbindung zu einer Datei herstellen und anschließend den Metadaten-Eigenschaftsbereich durchsuchen. Diese Technik ist etwas umständlich. Zum Glück kann ich die gleiche Funktion verwenden, die ich gestern geschrieben habe, um diese Aufgabe zu erledigen.
Beachten Sie, dass die vollständige Funktion zum Abrufen von Dateimetadaten im Script Center-Repository verfügbar ist.
...
Achten Sie darauf, die Ergebnisse zu speichern
Da das Skript möglicherweise Tausende von Fotos durchlaufen muss und für jedes Foto mehrere hundert Metadatenattribute durchsucht werden müssen, dauert die Ausführung des Skripts einige Zeit. Am besten speichern Sie die Ergebnisse in einer Variablen. Auf diese Weise können die Daten nach dem Lauf sortiert und nachbearbeitet werden.
Das
Get-FileMetaDataReturnObject.ps1
-Skript enthält eine einzelne Funktion. Die Funktion ist die Funktion Get -FileMetadata
. 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 eine Reihe von Ordnerpfaden. Ich erhalte das Array der Ordnerpfade mithilfe des CmdletsGet-ChildItem
. Hier ist der Befehl, der eine rekursive Suche nach einem Ordner mit dem Namen pics durchführt und die Verzeichnispfade in diesem Ordner abruft. Dies ist ein einzeiliger Befehl, der umgebrochen wurde.$picMetadata = Get-FileMetaData -folder (Get-childitem E:\pics -Recurse -Directory).FullName
...
Schreibe es in eine Datei
Nachdem ich weiß, dass der Befehl die gewünschte Ausgabe erzeugt, leite ich die Ergebnisse wie hier gezeigt an das Cmdlet
Export-CSV
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
Quelle Verwenden Sie PowerShell, um Metadaten aus Fotodateien zu suchen
Lesen Sie den obigen Quelllink, um zu sehen, welche anderen Metadaten verfügbar sind.
Es gibt viele Tools für die cmd-Zeile, mit denen Bildmetadaten abgerufen/extrahiert werden können.
> "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 nach den relevanten Eigenschaften gefiltert und mit Batch-Dateien wie gewünscht formatiert werden.
Ohne externe Programme zu installieren: tooltipinfo.bat
oder imginfo.bat
- Übergeben Sie einfach den Dateinamen (oder den Pfad, wenn er sich nicht im selben Verzeichnis befindet), um die Informationen abzurufen.