我想指定一個目錄,並讓軟件查找該目錄及其子目錄中的所有照片,如果它們包含EXIF日期/時間,它將設置其文件系統時間戳以匹配EXIF。
我想指定一個目錄,並讓軟件查找該目錄及其子目錄中的所有照片,如果它們包含EXIF日期/時間,它將設置其文件系統時間戳以匹配EXIF。
這是是否有任何軟件可以根據文件的修改日期設置EXIF日期?,並且我確定那裡列出的所有程序都將適用。
其中,對於這個非常簡單的任務,我建議使用 jhead。例如,命令
jhead -ft * .jpg
設置一堆文件,以便文件時間戳匹配EXIF。
find
的jhead,用於遍歷子目錄為了執行到子目錄的遞歸操作,可以將其與 find
命令結合使用Linux / Unix / Mac(或Windows上的 Cygwin):
find。 -name'* .jpg'-exec jhead -ft {} +
或查找 *。JPG * .JPEG * .jpg * .jpeg ...
,您也可以嘗試
查找。 -iname'* .jp * g'-exec jhead -ft {} +
您還可以使用find來顯示將要找到的所有文件,而無需執行任何操作其他命令(如jhead):
find。 -iname'* .jp * g'
其他實用程序(例如ExifTool或Exiv2)功能更強大,但代價是複雜。我永遠不會記住隨便使用這些選項的正確選項,並且每次都必須看一下文檔,但是 jhead -ft
用助記符“修復”很容易記住時間”。
為了完整起見,我 did 查看文檔,並使用 ExifTool
exiftool -r'-DateTimeOriginal>FileModifyDate'目錄名
(如果不想遞歸,請刪除 -r
,如果這樣做,也可以提供文件列表或通配符而不是目錄名
。)請注意這些引號-如果在Windows上運行,則需要“
而不是'
。
使用 Exiv2:
exiv2 -T重命名* .jpg
請注意,如果使用小寫的 -t
(或不使用任何 -T
),Exiv2也會根據時間戳將文件重命名為新名稱,這可能會造成混亂。 Exiv2也不進行遞歸。
Irfanview和jhead都可以做您想做的事。
兩者都是免費的。
鏈接到下面兩者。
jhead是命令行驅動的或可以由其他進程調用。
Irfanview版本可以從命令行調用,也可以在內部批量或逐個文件地調用。
下面的Irfanview示例顯示瞭如何向任一方向複製:
Irfanview
允許從EXIF到文件規格的批處理或每個文件日期/時間的GUI或命令行更改,反之亦然(
來源:免費提供的 www.irfanview.com
這是 MUCH 在實踐中會比以下說明更容易,更快捷地顯示出來。例如,
要將單個文件的日期/時間轉換為EXIF值,需要
Shift-J,Alt-F,Enter。
了解為什麼第一次幾次需要更長的時間。
要對一批複雜的SOUNDS文件進行學習-
它需要:T,Ctrl-A,Alt-F,J,Enter,(Alt-F),Enter
(或:T,Ctrl-A,Shift-J,Enter)(提供較少的選項)
實際上,經過一點使用,它幾乎是完全直觀的-菜單最初會指導您直至形成大腦路徑。
GUI,每個文件
選項,JPG無損旋轉(Shift-J)選擇“將原始EXIF日期/時間應用於新文件”考慮還選擇其他選項
GUI,一個或多個文件(通過縮略圖視圖) >
警告:(添加2020年!)
已指出,選擇錯誤的選項可能會導致不良結果-例如,將所有目標文件設置為單個選擇的日期和時間。正確執行此操作“不是太難”-但是請查看各個複選框,並確定哪個複選框適合您的需求。
打開縮略圖視圖(“文件,窗口視圖中的縮略圖”或“ T”選擇圖像以更改圖像的EXIF數據
通常全部位於文件夾中-> Ctrl-AT時:文件,“ JPG無損操作”(1)更改EXIF日期/時間“更改EXIF日期/時間”提供了將日期/時間設置為特定設置或將所有時間後退/根據需要選擇提供的DHMS數量計算器進行轉發。 (2)將EXIF日期/時間傳送到文件保存日期時間“對所選文件進行無損旋轉” [Shift-J],然後,對於上述單個文件版本,選擇“將原始EXIF日期/時間應用於新文件”
從命令行-這是“輪播”,沒有操作,只是從中復制日期/時間EXIF文件日期和時間。如果需要,也可以相反。 :
i_view32.exe file_spec \ *。jpg / jpg_rotate =(0,0,0,1,0,0,0,0)
要以相反的方向複製日期/時間((將文件規範複製到EXIF)
與(0,0,1,0,0,0,0,0,0)相同地使用
jhead
幾乎可以完成jpeg文件可以想像的任何事情
來源: 來自 http://www.sentex.net/~mwandel/jhead/
,我免費使用以下批處理文件。其他選項是可能的:
他們說:jhead可以在exif中進行修改jpeg文件
_________________________
注意:2016年8月:“匿名用戶”正確地建議一個建議的轉換不起作用,正如我所說。我已經廣泛地添加到有關領域。
只是另一個命令行EXIF工具,它可以根據JPEG圖像文件中的EXIF元數據來更改文件的最後修改日期以匹配拍照時間:
exiv2 -T重命名somedir / foo * .jpg
不用擔心,命令參數 rename
在那裡就可以了,並且沒有害處。
僅僅是文件重命名操作被誤用於僅產生更改時間戳的副作用。
當我真的不建議您依賴文件日期/時間時,可以使用名為 EXIF Date Changer的免費工具進行批量設置您所有JPG圖像的文件日期。默認設置將同時為拍攝的照片設置創建日期和日期修改文件日期。
我不建議您使用文件日期的原因很容易更新。如果您編輯圖像,則修改日期會更新。如果復製圖像,它將獲得一個新日期。
更好的解決方案是重命名文件以在文件名本身中包含日期/時間。這樣仍然可以輕鬆進行排序,並且可以很好地處理存儲在iPhone / Dropbox上的圖像。
查看我新的免費軟件“照片日期管理器”: http://photodateorganizer.sourceforge.net/
FastStone Image Viewer可以做到這一點(使用4.9版)-只需在縮略圖窗格中選擇文件,右鍵單擊它們,選擇“工具”>“更改時間戳記”-然後您可以使用EXIF (無論是否進行了修改)數據或使用按用戶自定義的固定手動日期/時間。
Advance Renamer是最好的用戶友好軟件,它非常簡單。
將所有照片拖放到AR(Advance Renamer)
單擊(左上方)添加方法->新名稱
單擊圖像底部中間的一個,您將看到一個按鈕 ExifTool ,顯示所有元數據,只需單擊一個屬性即可獲得標籤。在這種情況下,它是 <ExifTool:DateTimeOriginal>
將此內容複製並粘貼到新名稱文本框中,您可以在 IMG_<ExifTool:DateTimeOriginal>
, DSC_<ExifTool:DateTimeOriginal>等之前或之後添加任何內容。
點擊開始批處理(右上),這將用日期Eg重命名所有文件。 2017_12_01 19_10_12 最好在文件名中保留原始日期,因為屬性可能會丟失,但文件名不會丟失。
我只是註冊了StackExchange,所以我要感謝OP發布了此內容,並添加了解決方法bc,這裡的某些命令對我不起作用。抱歉,我要說說我的過程。
我正處於“讓我們最終清理我的照片檔案”的努力之中,因為這場鬥爭是真實的,尤其是因為iCloud和Google相冊從您的設備中將它們帶走並且文件管理與之無關如今(在更早的時期,良好的服務和產品有點任性,並強制執行了怪異的隨機性和重複操作,這需要真正的努力來克服。)
我使用Flickr將照片從我的機器上取下來當我的驅動器太小而無法容納所有人時。自2006年以來,我一直在一個帳戶上使用Google相冊,因此我通過不同的上傳方式在其中擁有一組隨機副本和獨特的圖片。
當iPhone攝影真正開始時,我將通過USB連接,將它們導入到我的Dropbox中,Dropbox會使用日期時間戳將其重命名,然後將其放置在一個年/月文件夾中,並進行一些整理整理屏幕截圖和購物照片,然後Google相冊觀看了該存檔文件夾以上傳照片。在iCloud從我的iPhone抓住照片並證明需要其自己的工作流程之前,這種方法一直奏效。
由於復制一直都是BIG的問題,因此稱為Gemini II的工具 finally 使得此清理和存檔項目成為可能。
為了將存檔整合到外部驅動器上,我決定下載所有圖片,但下載最新的iCloud(使用Image Capture和USB連接到手機:並非100%可靠),Flickr和Google,並清理乾淨。
這就是我發現Exif數據的方式:一些照片(只有一些)不是平面文件(請參見下圖),並在Finder中顯示了它們的元數據。大多數只具有可見的創建-修改日期。我從Flickr(和Google的一些文件)下載的內容被保存下來,就好像它們是在下載當天創建和修改的一樣。不好。一些具有可見的EXIF數據,但許多/大多數看上去平坦。我一直在刪除重複的副本,因為它們的時間戳錯誤(就是說,它們的大小相同或更小)。
Dropbox步驟對我來說一直很重要,因為IMG _ ####或DSC ####一直沒有用。有人問我為什麼不跳過Dropbox步驟並使用Automater重命名它們。 Automater沒有我能看到的功能,但是由於有了Jhead,這終於可以工作了。
我想出瞭如何首先安裝jhead,然後遞歸地通過目錄運行jhead的方法,並且通常,照片文件中仍然存在EXIF數據。結果:jhead更改了文件的日期與EXIF數據中的日期相同。沒有失望。
首先,對於Mac用戶:按照命令行(終端)中的untar安裝說明進行操作。如果找不到用於jhead的文件,請在jhead tarball的位置找到一般的untar指令和sub。這行得通,因為從命令行下載並嘗試安裝肯定沒有。下一步:確保在App Store上安裝Xcode。所有Apple開發人員都需要該程序,並且它可以使命令正常運行。 “ make”和“ install make”需要它。
使用jhead工具:我不熟悉閱讀Unix指令和手冊(man jhead),但是對CLI足夠熟悉,如果有人在某個地方記錄了某些東西,我會嘗試他們的選擇,直到能起作用。
這對我不起作用:
[我想要的目錄]>查找-name'* .jpg'-exec jhead -ft {} +
在StackExchange的其他地方,我找到了另一個我需要工作的遞歸搜索字符串(它具有似乎不需要的-print選項):
find。 | grep'。* [。] jpg'
,但是如果我添加了jhead命令,我會收到一條錯誤消息,說它不理解'grep'
通過添加和刪除搜索選項/變量並試圖使jhead成為該命令的一部分來解構搜索項,直到我嘗試了一個舊的約定後才起作用:
jhead -ft ./ * / *。jpg
這遍歷了整個很長的目錄,並且沒有吐出很多錯誤,例如“不包含EXIF時間戳”或“錯誤:時間'0000: 00:00 00:00:00':無法轉換為Unix時間”
當我查看時,僅保留了少數下載的昨天時間戳記。因此,我在“重複”文件夾中的其他10個文件文件夾中對此進行了測試。 2020年的情況恢復為2004年,2013年,2012年。我了解到,如果您兩次在同一目錄中運行兩次,則不會再獲得輸出。
然後,我根據時間戳約定使用jhead重命名了文件。它像魅力一樣運作;如果原始文件名包含對您有意義的文件,並且您想保留該文件名,請確保將其包含在所選的日期戳字符串中:
''%f…* .jpg
我建議給PhotoRenamer的作者,他回答...
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
我在功能區的“選項”選項卡中添加了一個按鈕。從那裡,您可以選擇用於更新文件的文件時間狀態的選項。.
為避免使用遮罩,我還添加了一個新的遮罩屬性:%F。如果使用此簡單掩碼,則文件將被重命名為...具有其自己的名稱...因此,您不必重命名要為其更新文件時間屬性的文件...
這是一個古老的問題,似乎有一些建議應該行之有效,但是我在Android手機升級後找到的解決文件訂購問題的建議就是這個。
也許這對某人有用。
另一個免費程序是Google Picasa-您可以輕鬆批量更改所有照片的日期和時間:
關於它的精美文章:如何在Picasa中將照片的日期更改為拍攝照片的時間