.png)
ファイルの日付スタンプ(変更日および/または作成日)を秒単位の精度で一括変更するユーティリティを探していますが、変更は昇順で行われます。例:
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 も持っているので、第 2 の選択肢として検討できます。
答え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
ファイルを指定するだけ望ましい時間順に最初のファイルのタイムスタンプを基準として使用し、後続の各引数に 1 秒ずつ増分して加算します。
参照ファイルが複数回指定されている場合、元の時間が保持されます (これは、参照タイムスタンプを変更せずに、たとえば「retime 0001.jpg *」を実行できるようにするためだけです)。別のファイルが複数回指定されている場合、最後の論理タイムスタンプが取得されます。
がなければ-h
、touch
シンボリック リンクを参照解除しますが、これはおそらくこの場合は望ましくありません (「シンボリックって何?」と聞かれても心配しないでください)。
答え2
いい質問ですが、おそらく Flickr にはアップロードされたファイルを順序付けるオプションがあるはずです。
Windowsの場合は
Linuxでは、bashスクリプトを簡単に書いて、触る複数のファイルを変更するコマンド。
タッチコマンドはMac OS Xでも利用可能で、誰かが書いた自動化タスクこれを行うには、ターミナルで実行することもできます
FILES=./*
for f in $FILES
do
echo "Processing $f file..."
touch $f
done
この bash スクリプトは、すべてのファイルを昇順で処理します。各ファイルに異なる秒数の値を持たせたい場合は、スクリプトに「sleep」を追加できます。
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 番目のファイルは 2 分追加され、3 番目のファイルは 3 分追加され、というように続きます。