【Windows】ファイルの更新時間を強引に「更新」する

WindowsファイルのバックアップにCopyToを使っています。ファイルの更新時間を比較して、必要なファイルだけコピーしてくれるのですが、これがちょっと困ったことになっていたのです。

古いファイルの中には、更新時間がおかしくなっているのがいて、2030年くらいならまだしも2100年とか…。ファイルシステムを飛ばしてしまったとか、うまく回復できなかったとか、理由はいろいろあるんでしょうが、とにかく変な更新時間を持つファイルが結構あるのです。

Windows間でこういうファイルをコピーしても、更新時間はキープされるのですね。当たり前と言えば当たり前ですけど。しかし、NASを使うとこうはいかないのです。NASの多くはLinuxなどをベースとしているようですから、変な更新時間は認めてくれずに、1970年1月1日の午前0時0分というように、UNIX時間の原点にされてしまうこともあるんですね。

これで何が困るかというと、コピー先のNAS上のファイルは、更新時間が非常に若くなってしまいますから、バックアップの際に毎回コピーされてしまうのですね。ファイルが少ないならいいのですけど、多いと時間も馬鹿になりません。

ちょっと気持ち悪いので、年末の時間を利用して、更新時間を真っ当なものに変えてしまうことにしました。探すのは簡単で、CopyToの更新対象ファイル一覧から、ソースのフォルダを開けばいいのです。

残念ながら、GUIで更新時間を変えるツールは標準ではありませんから、コマンドを使います。余り難しいことを考えずに、とにかく現在の日時に更新時間を変えたい、というレベルではcopyコマンドを使うという技があります。

コマンドプロンプトを開いて、対象のファイルのあるフォルダにcdコマンドで移動して、copyコマンドを以下のように実行して下さい。

copy filename +

filenameは、対象のファイル名です。スペースを空けて、+(プラス)記号を半角で入れます。これでOKです。理屈の上では、自分を自分にコピーするということなのですが、これで更新時間がコピー時点のものになるわけです。

変な更新時間情報を正しいものにするだけなら、こんな手があるというお話でした。なお、更新時間情報を任意に設定したり、別のファイルからコピーするツールもあるようなので、時間情報にこだわりたければそれを使ってもよいでしょう。

コメント