ハウスキープ処理などで指定の日数経過したファイルを削除するテストを行うとき、ファイルの更新日時を過去の日付に変更したい場合がある。PowerShellで作成日時や更新日時を変更できるようなのでメモしておく。

作成日時を変更する構文

PS> Set-ItemProperty <ファイル> -Name CreationTime -Value "日時"

更新日時を変更する構文

PS> Set-ItemProperty <ファイル> -Name LastWriteTime -Value "日時"

日時には”2017/10/16 13:55:20”のような形式で指定する

実行例

複数ファイルの更新日時を7日前の日付に変更する

$previous_days=7
$previous_date=($(Get-Date).AddDays(-$previous_days)).ToString("yyyy/MM/dd HH:mm:ss")
$filesPath="C:\temp\*.txt"

Get-ChildItem -Path $filesPath `
  | Where-Object { $_ -is [System.IO.FileInfo] } `
  | ForEach-Object { Set-ItemProperty $_.FullName -Name LastWriteTime -Value "$previous_date" }