PowerShell

ファイルの更新日時を変更する方法【PowerShell】

今回はファイルの更新日時を任意の時刻に変更するコマンドを紹介します。

今回のコマンドの使い道として、ファイルの更新日時を見て判定するプログラム等のテストなどに使用する事が可能です。

さらに、一定時刻がたったファイルを削除したい時にもファイルの更新日時を見る事が多いので試すのには非常に便利になっていきます。

このコマンド以外にもツールやコマンドがあるかもしれませんが、Windowsに標準で備わっているPowerShellのコマンドを利用する事で怪しい物を入れなくなりセキュリティ面でも問題がないと思います。

そして、今回使うPowerShellのコマンドはSet-ItemPropertyです。

Set-ItemPropertyはコマンドレットでファイルの時刻を変更する事が出来ます。

下記では実際にSet-ItemPropertyを使って実際にファイルの更新日時を変更する方法を記載します。

 

実行環境は下記になります。

PCWindows10 home 64bit
PowerShell5.1.17134.590

 

ファイルの更新日時を変更する方法

Set-ItemPropertyコマンドレットでファイルの時刻情報を変更できます。
下記に書式を記載します。

Set-ItemPropertyコマンド書式

Set-ItemProperty -Path <ファイル名> -Name LastWriteTime -Value $(Get-Date)
省略すると
Set-ItemProperty <ファイル名> LastWriteTime $(Get-Date)

上記のコマンドを利用してファイルの更新日時を変更していきます。

今回のサンプルのディレクトリ構造

変更前のディレクトリは以下になっています。今回はtest.txtを変更対象とします。

上記のファイル名とLastWriteTimeを注目していきましょう。

最終変更時刻の日付を変更する方法

1.PowerShellを開き下記のコマンドを実施します。
LastWriteTimeに変更したい日時を指定します。

書式:Set-ItemProperty test.txt LastWriteTime $(“変更したい日時を指定”)

Set-ItemProperty test.txt LastWriteTime $("2019/10/27")

2.コマンドを実施し、エラーが出なければ成功です。
変更対象のtest.txtを見るとLastWriteTimeに指定した日時に変更されています。

任意の時刻も一緒に変更する方法

1.任意の時刻も一緒に変更する場合はPowerShellを開き下記のコマンドを実施します。

Get-ItemProperty test.txt LastWriteTime $("2019/10/26 12:34:56")

 

2.変更対象のファイルを確認すると、LastWriteTimeの日付と時刻が変更されているのがわかります。

また「LastWriteTime」(最終変更時刻)以外にも、「LastAccessTime」(最終アクセス時刻)、「CreationTime」(作成時刻)も指定できます。

そして、「test.txt」の部分は変更対象があるフォルダに移動せず、フルパスで指定する事が可能です。

そのため、階層を変更せずファイルの更新日時を変更可能です。

例「D:¥testフォルダに居ながら、C:¥workにあるtest.txtを変更する方法。」

Get-ItemProperty C:¥work¥test.txt LastWriteTime $("2019/10/26 12:34:56")

まとめ

今回はファイルの最終変更時刻を変更するコマンドを紹介しました。

ファイルの更新日時を見て処理するプログラム等で試験ファイルを作成するのに便利なので是非実際に実施してみてください。

ABOUT ME
Yoshiyuki Sugiyama
2019年2月からフリーランスエンジニアをやっています。 自分が将来見るためのメモ等をアップします。 使用する言語は主にPython。JavaとC#も使えます。 現在はAI関連を勉強中。 >>プロフィール詳細