Windows7 でファイルの作成日時や更新日時を変更する

Windows7 でファイルの作成日時や更新日時を変更する方法は GUI では用意されていないので、コマンドラインから操作をすることになる。PowerShell がその辺の細かいオブジェクトへのアクセス方法を持っているので、PowerShellを使うのが簡単な上に柔軟に設定できる。

まずはスタートメニューから PowerShell を起動して、ファイルの作成日時の更新日時を確認する。

PS > Get-Item .\abc.txt | Select-Object Name,CreationTime,LastWriteTime
 
Name           CreationTime           LastWriteTime
----           ------------           -------------
abc.txt        2012/06/07 0:00:00     2014/05/06 0:00:00

最終更新日を作成日と同じにしたい。作成日を文字列として取り出そう。オブジェクトに .ToString つけると文字列が取り出せる。

PS > $(Get-Item .\abc.txt).CreationTime.ToString('yyyy/MM/dd HH:mm:ss')
2012/06/07 00:00:00

作成日時を文字列として取り出せたので、ファイルの最終更新日時を作成日時へとセットしよう。Set-ItemProperty filename でセットをする。セット先は -name LastWriteTime、セットする値は -Value ..... で指定する。

PS > Set-ItemProperty .\abc.txt -name LastWriteTime -Value `
>> $(Get-Item .\abc.txt).CreationTime.ToString('yyyy/MM/dd HH:mm:ss')
>>
PS > Get-Item .\abc.txt | Select-Object Name,CreationTime,LastWriteTime
 
Name           CreationTime           LastWriteTime
----           ------------           -------------
abc.txt        2012/06/07 0:00:00     2012/06/07 0:00:00

一行で細かい操作ができて大変気持ちよい。