2017-05-07 48 views
0

我有兩個使用不同相機拍攝的照片文件夾,並希望按日期合併它們,然後以日期順序查看組合目錄。我已經合併了他們,目錄日期看起來不錯,但我使用的工具堅持以名稱順序顯示照片,這不是我想要的。我覺得做一個批量重命名功能,使文件名的日期部分,使用bat文件,但DOS DIR命令似乎不使用此日期 - 如果我做需要查看日期序列中的合併照片目錄

for /f "skip=5 tokens=1,2,4,5* delims= " %%i in ('dir /a:-d /o:d /t:c') do (

等,最的文件日期是正確的,但有些文件似乎使用目錄的「創建日期」。

也許有一個簡單的解決方案,因爲這一定是一個常見問題,但我還沒有找到一個好的解決方案 - 對700多個文件進行費力的手動重命名!

幫助,將不勝感激!

保羅M.

+0

您需要EXIF數據的日期/時間。 'Batch'不能讀取EXIF數據。但是那裏有公用事業可以。 Google for'用exif date重命名' – Stephan

+0

謝謝,斯蒂芬。這就是訣竅! –

回答

0
for /f "tokens=1*delims=[]" %%a in ('dir /b /a-d /od /t:c^|find /v /n "" ') do echo ren "%%b" "%%a%%~xb" 

執行源目錄的一個目錄掃描,在/b基本模式/a-d而不日期順序選擇創建日期,括號中的數字目錄的每一行不匹配的空字符串並將找到的每個文件名分配到%%b,並將其編號爲%%a

所需的REN命令僅用於測試目的。 驗證命令是否正確後,將ECHO REN更改爲REN以實際重命名文件。

注意:開始[]的文件名將被錯誤地處理。如果現有文件具有屬於目標名稱集的名稱(例如1.?2?等),則只需在目標名稱的前面添加一個不存在的前綴,例如ren "%%b" "new_%%a%%~xb"(其中沒有已命名的文件new_*


我使用你正在使用的程序顯示文件時,我不知道關於Win7的能力(資源管理器?)Win10具有通過創建日期選擇顯示的功能(選擇sort by然後創建日期)

如果您確定按創建日期排序,那麼可能需要選擇其他排序方案(將t:c更改爲t也許)

如果有文件名未被轉換,那麼您可能將文件(稱爲img *)添加到已包含名爲1,2,3的文件的目錄中 - 實際上,它是很難看到這種現象如何發生。

變化"%%a%%~xb"rename命令"xyz%%a%%~xb",你應該找到這些文件是那麼所有的改名XYZ1,XYZ2,xyz3等,如果你再重新處理與xyz刪除的文件,它們的名稱應該成爲與1,2,3沒有遺漏。

+0

嗨Magoo,非常感謝您的解決方案 - 比我的簡單得多,雖然它包含一些非常神祕的'DOS'語法!不幸的是,它遇到了與我的解決方案相同的問題:1)日期序列仍然不同於Win7顯示的日期序列,2)有些文件保持未轉換。我已經把兩個屏幕抓在http://www.jpaulmorrison.com/prob1.jpg和http://www.jpaulmorrison.com/prob2.jpg,分別。有什麼想法嗎?還有誰? TIA –

+0

原來,斯蒂芬的答案是正確的 - 像魅力一樣工作! –