Windows ではファイルのタイムスタンプを更新するための標準コマンドが用意されていません。
*nix 系だと touch
コマンドを使用しますが、Windows の場合は PowerShell を使う必要があります。
Linux では touch
Linux でファイルのタイムスタンプを変更するには touch
コマンドで簡単に実施できます。
最終アクセス時刻を変更
最終アクセス時刻を 2017年07月23日12時30分 に設定するには -a
オプションを使います。
$ touch -at 20170723123000 hoge.txt
最終更新日時を変更
最終更新日時を変更する場合は -m
オプションを指定します。
$ touch -mt 20170723123000 hoge.txt
-t
は日時指定のオプションですが、-d
を使うことで読みやすい指定ができます。
$ touch -md "2017/07/23 12:30:00" hoge.txt
Windows で touch
Windows の場合はコマンドが無く、GUI からの更新もできません。
なので PowerShell 使うことになります。
更新日時の変更
PS> Set-ItemProperty "C:\hoge.txt" -Name LastWriteTime -Value "2015/01/01 10:20:30"
作成日時の変更
PS> Set-ItemProperty "C:\hoge.txt" -Name CreationTime -Value "2015/01/01 10:20:30"
一括変更
複数ファイルをまとめて変更する場合は以下のようにできます。
PS> Get-ChildItem -Path "C:\*.txt" | Where-Object { $_ -is [System.IO.FileInfo] } | ForEach-Object { Set-ItemProperty $_.FullName -Name LastWriteTime -Value "2015/01/01 10:20:30" }
作成日時も同様に行うことができます。
PS> Get-ChildItem -Path "C:\*.txt" | Where-Object { $_ -is [System.IO.FileInfo] } | ForEach-Object { Set-ItemProperty $_.FullName -Name CreationTime -Value "2015/01/01 10:20:30" }
Set-ItemProperty のその他のオプションは以下を参照してください。
- 作者:Bruce Payette
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2007/07/31
- メディア: 単行本
【改訂新版】 Windows PowerShell ポケットリファレンス
- 作者:牟田口 大介
- 出版社/メーカー: 技術評論社
- 発売日: 2013/02/23
- メディア: 単行本(ソフトカバー)