使用imagemagick識別多個子資料夾中的所有文件

使用imagemagick識別多個子資料夾中的所有文件

我想跑圖像魔術師可以identify選擇一次掃描多個資料夾中的所有影像。

它的運作方式應該類似於下面的語法,但我想將其全部記錄到同一個日誌檔案中,如果可能的話,我也想為此建立一個批次檔。

magick identify -verbose "D:\Images" >log.txt 2>&1

答案1

你可以運行一個對於/F循環與目錄命令從來源目錄 (D:\Images) 取得每個檔案的完整顯式路徑並遞歸遍歷它。

這實質上是將每個完整的明確路徑和檔案名稱magick一一傳遞給命令,然後您將它們附加到日誌檔案中以供以後查看。

下面提供了其他資源和使用所有這些的適用語法的範例命令,供您相應地使用。這對您來說應該是一個很好的起點。


命令列範例

筆記: D\Images\*.*"您可以替換as或任何檔案副檔名的部分 D\Images\*.jpg",以僅列出那些特定的檔案副檔名,您也可以F:\OtherFolder\*.png"根據需要將其變更為或任何其他內容,以便可以在範例的該部分中指定不同的資料夾路徑和/或檔案副檔名下面提供。

FOR /F "DELIMS=" %A IN ('DIR /A-D /S /B "D:\Images\*.*"') DO magick identify -verbose "%~A">>D:\logfile.txt

批次腳本範例

筆記: 我製作了這個腳本,這樣您就可以輕鬆地根據您的需求設定變量,以適應每次運行。

@ECHO ON

SET Source=D:\Images
SET Ext=*.jpg
SET LogFile=D:\logfile.txt

FOR /F "DELIMS=" %%A IN ('DIR /A-D /S /B "%Source%\%Ext%"') DO magick identify -verbose "%%~A">>"%LogFile%"
GOTO EOF

更多資源

答案2

以下一行(適用於 Linux,但也可能使用 Windows PowerShell 在 Windows 10 上)為您提供基礎目錄中所有 jpg 映像及其詳細資訊的遞歸清單:

find . -name "*.jpg" -exec identify {} \;

相關內容