web-dev-qa-db-ja.com

昇順の日時で複数のファイルの作成/変更日をバッチ変更するユーティリティを探しています(Windows XP / 7 / Mac / Linux)

バッチ/バルクがファイルの日付スタンプ(日付変更および/または日付作成)を2番目の精度に変更するユーティリティを探していますが、昇順で変更します。

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を持っているので、二次的な選択肢としてそれを考えることができます。

3
therobyouknow

この

  • 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

ファイルを指定するだけです必要な時間順で最初のファイルのタイムスタンプをベースとして使用し、次の各引数に1秒ずつ追加します。

参照ファイルが複数回指定された場合、元の時刻が保持されます(これは、参照タイムスタンプを変更せずに「retime 0001.jpg *」などを実行できるようにするためだけです)。別のファイルが複数回指定された場合、そのファイルは最後の論理タイムスタンプを取得します。

-hがないと、touchはシンボリックリンクを逆参照しますが、この場合はおそらく望ましくありません(「シンボリックwhat-now?」と言っても、心配しないでください)。

4

良い質問ですが、Flickrにはアップロードされたファイルを注文するためのオプションがあるはずです。

Windowsの場合、私は提案します

Nirsoftバルクファイルチェンジャー

Linuxの場合、bashスクリプトを簡単に記述し、 touch コマンドを使用して複数のファイルを変更できます。

タッチコマンドはMacOS Xでも利用でき、誰かがこれを行うために 自動化タスク を書いていますが、これも端末で行うことができます

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

このbashスクリプトは、すべてのファイルに昇順でアクセスします。各ファイルに異なる2番目の値を持たせたい場合は、スクリプトに「スリープ」を追加できます。

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

「NirsoftBulkFile Changerは、定義された増分でファイルの日付スタンプを昇順で変更しますか?」

答えはイエスです。私はそれをファイルのバッチに対して行いました。それはできます。

TotalCommanderまたはWindowsExplorerでファイルのリストを選択し、必要な順序で並べ替えます

クリックしてNirsoftBulk FileChangerにプルします

最初のファイルの日時を調整します。例:変更日[/] 5年4月7日[/] 11:40:10 AM

[/]追加[1] [分]

[/]日付/時刻シーケンスモードをクリックします

[]をクリックしないでください時間はGMTで指定されています

[実行]をクリックします

リスト内のすべてのハエは、1分間の一連の変更を伴う日付タイムスタンプで変更されます。最初のファイルが1分追加されました2番目のファイルが2分追加されました3番目のファイルが3分追加されました.....

1
ricohflex