画像を更新日時順で並べ替える方法

画像をダウンロード順に並べ替える場合、右クリック→「並べ替え」→「その他」の箇所で「更新日時」にチェックを入れ、再度、それを選択して並べ替えれば順番に表示されます。

けれども、微妙に順番がバラバラになってしまうことがあると思います。

この原因についてですが、「更新日時順」で並べ替えたとしても、コンマ一桁あたりまでは同タイムになることがあるため、デフォルトの「秒単位」での並べ替えでは同時にダウンロードされた画像の順番が反映されないからです。

例えば、こちらの画像ですが、「01:35:17」の同時刻で6枚の画像がありますが、デフォルトの秒単位で表示する場合、この6枚については順番が分からず、バラバラに表示されることになります。

さらに、このうちの3枚については0.1秒単位までは同じ時間のため、どちらが先かを判断するには秒コンマ2桁までチェックする必要があります。

秒コンマ7桁まではチェックできるはずですが、概ね3桁までチェックすれば十分かと思います。

このやり方についてですが、まずは調べたい画像のあるフォルダに移動し、コマンドの意味の「cmd」と入力してコマンドブロンプトを起動させます。

次に、起動した画面で以下のコマンドを入力してエンターを押せば、正確なダウンロード順で並んだ上記のような結果が出力されるはずです。

PowerShell "Get-ChildItem | Select-Object Name, @{Name=\"LastWriteTime\"; Expression={$_.LastWriteTime.ToString(\"yyyy/MM/dd HH:mm:ss.fff\")}} | Sort-Object LastWriteTime"

「s」は秒、「f」はミリ秒ですが、「f」が3つで3桁の意味になります。桁数を増やしたい場合は「f」の数を増やすとよいでしょう。

この結果をテキストファイルで出力する場合、上記に「 > example.txt」も加えて実行すれば、結果が同じフォルダ内に出力されるはずです。(※かぎかっこは必要なし。中身のみ。)

もしくは、右クリックの「マーク」でそのまま選択してコピペするのでもよいかもしれません。

その結果をエクセルやGoogleスプレッドシートなどに貼り付け、日付や時間の列は削除します。

すると、順番に並んだ画像ファイル名のみになるはずですが、その横に「1」や「2」などと連番で数字を縦に並べていきます。さらに、その横には「.jpg」を縦に並べていきます。

それを合体させまして、「example.jpg」を「1.jpg」のような形にリネーム(ren)しますが、このコマンドは「ren example.jpg 1.jpg」になります。

並べ替えたいファイルが100個あったとしますと、「ren example.jpg 1.jpg」、「ren hoge.jpg 2.jpg」...「ren hogehoge.jpg 100.jpg」のようになりますが、それら全てを「 & 」でつなぎます。

つまり、「ren example.jpg 1.jpg & ren hoge.jpg 2.jpg & ren chomechome.jpg 3.jpg & ... & ren hogehoge.jpg 100.jpg」のようにします。

上記のエクセルをコピペしてメモ帳に貼り付け、改行もはさんで同じ文字で置換すれば、ひとつのコマンドになるはずです。

これを先ほどのコマンドプロンプトで実行すれば、画像が「1.jpg~100.jpg」の順番に並びますので、これらを名前順で並べ替えれば、正確なダウンロード順になるかと思います。ちなみに、画像のファイル名に空白がある場合は失敗しますので、その場合は「ren "example (1).jpg" "1.jpg"」のように引用符で囲ってから実行するとよいでしょう。

また、cmdのコマンドは最大文字数が8191文字のため、長くなる場合は何回かに分けて実行されることをおすすめします。

ただし、ファイル名が変更になりますので、実行する際は、画像をフォルダごとバックアップしてから実行されることをおすすめします。

カテゴリ: