
我正在嘗試返回一個文字文件,其中包含有關資料夾及其子資料夾中圖像文件的一些詳細資訊。具體來說:
- 文件路徑
- 圖片延伸
- 影像尺寸
- 拍攝日期
- 相機型號
這些屬性可能並不適用於每個圖像 - 我不確定這是否會成為問題。
取得文件清單就可以了;DIR C:\[...]\FOLDER\*.* /S|
(我認為)。這是我不確定的下一部分;我找到了其他作業系統的訊息,也聽到了WMIC
建議。我嘗試在單一文件上進行測試:
wmic datafile where Name="C:\[...]\IMG_5443.JPG" get Name,FileType > "C:\[...]\info.txt"
但它返回了,Error: Invalid query
所以我猜測 WMIC 不適用於圖像,或者至少需要更改一些參數。
我還注意到,當我輸入時,wmic datafile get/?
尺寸並未列為可用屬性之一。這就是我所知道的盡可能多的故障排除。
那麼有沒有辦法回傳一個屬性影像使用命令列在 Windows 中建立檔案(或檔案清單)。如果沒有,我願意接受任何不需要安裝額外軟體的東西。有什麼建議麼?
答案1
如何使用命令列在 Windows 中取得影像檔案的屬性?
您可以使用 PowerShell 來執行此操作。
通常填寫的影像檔案元資料包含相機、光圈值、解析度以及其他有關照片的有用資訊。這對於任何拍照的人來說都非常有用。點擊“屬性”,然後點擊“詳細資料”,可以從照片的“檔案”標籤輕鬆找到圖像元資料。
…
要使用 Windows PowerShell 檢查此類元資料意味著使用 Shell.Application COM 對象,連接到文件,然後遍歷元資料屬性包。這個技術有點麻煩。幸運的是,我可以使用昨天編寫的相同函數來完成此任務。
注意完整取得文件元數據腳本中心儲存庫中提供了該功能。
…
確保儲存結果
由於腳本可能需要迭代數千張照片,並且對於每張照片需要搜尋數百個元資料屬性,因此腳本將需要一些時間來運行。最好的方法是將結果儲存在變數中。這將允許對運行後的資料進行排序和後收集處理。
該
Get-FileMetaDataReturnObject.ps1
腳本包含一個函數。該函數是 Get-FileMetadata
函數。我在 Windows PowerShell ISE 中載入該函數,並運行它以將該函數複製到記憶體中。完成此操作後,我調用該函數並向其傳遞資料夾路徑數組。我使用 cmdlet 來取得資料夾路徑數組Get-ChildItem
。以下指令會對名為 pics 的資料夾執行遞歸查找,並擷取該資料夾中的目錄路徑。這是一個已換行的單行命令。$picMetadata = Get-FileMetaData -folder (Get-childitem E:\pics -Recurse -Directory).FullName
…
將其寫入文件
現在我知道該命令會產生我想要的輸出,我將結果透過管道傳輸到 cmdlet,
Export-CSV
如下所示(這是一個單行命令):$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
閱讀上面的來源連結以查看還有哪些其他元資料可用。
答案2
不安裝外部程式:tooltipinfo.bat
或者imginfo.bat
- 只需傳遞檔案名稱(如果不在同一目錄中,則傳遞路徑)即可取得資訊。
答案3
有很多命令列工具可以獲取/提取圖像元資料。
> "C\Program Files\IrfanView\i_view64.exe" *.jpg /info=Jpeg_Info.txt /fullinfo
範例輸出(只有一張圖片):
>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
透過或多或少的努力,可以將輸出過濾為相關屬性,並使用批次檔按照您想要的方式格式化。