ファイルの最終更新日時を書き換える

 ファイルやフォルダーのオブジェクトのプロパティにLastWriteTimeがありますが、これに新しい日時を代入すれば最終更新日時が書き換わります。

 次の例では、ファイル1つだけ日付を更新します。

PS U:\PS> $item = Get-Item -LiteralPath .\Folder1
PS U:\PS> $item


    ディレクトリ: U:\PS


Mode         LastWriteTime Length Name
----         ------------- ------ ----
d---- 2010/09/08      6:52        Folder1


PS U:\PS>
PS U:\PS> $item.LastWriteTime = Get-Date '2012/01/01 0:12:34'
PS U:\PS> $item


    ディレクトリ: U:\PS


Mode         LastWriteTime Length Name
----         ------------- ------ ----
d---- 2012/01/01      0:12        Folder1


PS U:\PS>

 複数のファイルの更新日時を変更するには、Foreach-Objectコマンドレットを使用するなどでくり返し処理を行います。

PS U:\PS> Get-ChildItem `
>> | Foreach-Object { $_.LastWriteTime = Get-Date '2012/01/01 0:12:34' }
>>
PS U:\PS> Get-ChildItem

 実行結果は省略します。Get-ChildItemを書いた行の最後にあるバッククオートを見落とさないで下さい。

inserted by FC2 system