尋找實用程式以升序日期時間批次變更多個檔案的建立/修改日期(Windows XP/7/Mac/Linux)

尋找實用程式以升序日期時間批次變更多個檔案的建立/修改日期(Windows XP/7/Mac/Linux)

我正在尋找一個實用程序,可以批量/批量修改文件日期戳記(修改日期和/或創建日期)到第二個精度,但按升序增量順序進行,例如

File1 2012-04-18 10:21:01
File2 2012-04-18 10:21:02
File3 2012-04-18 10:21:03

我想這樣做是因為我想強制 Flickr 按特定順序對上傳的照片進行排序。

我想要 Windows 或 Mac 版本。我也有 Ubuntu,所以可以考慮將其作為次要選擇。

答案1

  • 在 Linux/Mac 上工作,
  • 不使用人為延遲來創建時間分散,並且
  • 保持修改日期接近原始日期(我經常發現這些日期在其他情況下很方便)。

 

#!/bin/sh
REF=${1}
i=1
while [ $# -gt 1 ]; do
    if ! [ "${2}" = "${REF}" ]; then
        touch -h -r "${REF}" -d "+${i} seconds" "${2}"
        i=$((i+1))
    fi
    shift
done

只需指定文件即可按想要的時間順序它將使用第一個檔案的時間戳作為基礎,並為以下每個參數遞增一秒鐘。

如果多次給出參考文件,它將保留其原始時間(這只是能夠執行“retime 0001.jpg *”而不更改參考時間戳記)。如果多次給出另一個文件,它將獲得最後一個邏輯時間戳。

如果沒有-h,touch將取消引用符號鏈接,這在這種情況下很可能是不需要的(如果您說“符號現在怎麼樣?”,那麼不用擔心)。

答案2

好問題,儘管 Flickr 應該有任何選項來排序上傳的檔案。

對於 Windows 我建議

Nirsoft 批次檔轉換器

對於 Linux,人們可以輕鬆編寫 bash 腳本並利用觸碰更改多個文件的命令。

touch 指令在 Mac OS X 上也可用,有人寫了一個自動化任務來做到這一點,但這也可以在終端機上完成

FILES=./*
for f in $FILES
do
  echo "Processing $f file..."
  touch $f 
done

該 bash 腳本將以升序排列每個檔案。如果您希望每個檔案具有不同的第二個值,您可以為腳本新增「睡眠」。

user@computer:/tmp/data$ ls -l

total 9028
-rw-r--r-- 1 user user  428800 Apr 19 12:18 File1
-rw-r--r-- 1 user user 4338800 Apr 19 12:18 File2
-rw-r--r-- 1 user user 4438800 Apr 19 12:18 File3
-rwxrwxrwx 1 user user      78 Apr 19 12:18 fix.sh

答案3

“Nirsoft Bulk File Changer 是否以定義的遞增增量更改檔案的日期戳記。”

答案是肯定的。我對一批文件這樣做了。可以辦到。

在 Total Commander 或 Windows 資源管理器中選擇檔案清單並按您想要的順序排列

點選並拉至 Nirsoft Bulk File Changer

調整第一個檔案的日期時間例如:修改日期[/] 07-Apr-5 [/] 11:40:10 AM

[/] 新增 [1] [分鐘]

點選[/]日期/時間序列模式

不得按一下 [] 指定時間為 GMT

點選【執行】

清單中的所有蒼蠅均按日期時間戳記進行更改,按順序更改系列為 1 分鐘。第一個文件添加了 1 分鐘 第二個文件添加了 2 分鐘 第三個文件添加了 3 分鐘等等...

相關內容