ファイルのプロパティを変更する方法を説明します。
今回は、
- 作成日時
- 更新日時
を変更する方法です。今回はっていうかフォルダプロパティ変更ネタはこれが記念すべき第1回目。第2回目が記事になることを祈る。
変更コマンド
コマンドは「Set-ItemProperty」を使用します。
オプションに「-Name」これは「プロパティの名前」の意味でnameですかね。
-Nameオプションの引数に、以下を指定します。
- 作成日時・・・CreationTime
- 更新日時・・・LastWriteTime
もうひとつのオプションに「-Value」オプション、引数に年月日と時刻 "YYYY/MM/DD hh:mm:ss" を指定します。
作成日時を変更する場合
1 |
Set-ItemProperty $FILENAME -Name CreationTime -Value "YYYY/MM/DD hh:mm:ss" |
更新日時を変更する場合
1 |
Set-ItemProperty $FILENAME -Name LastWriteTime -Value "YYYY/MM/DD hh:mm:ss" |
以上!
だとちょっと寂しいので例えばこんなふうに使えます。ってのを書きます。
例えばこんなふうに使えます
過去の1週間分のフォルダを作成し、作成したフォルダに対して作成日時や更新日時を指定したい場合は以下のようにする。例えば、スクリプトで「何日以前のフォルダやファイルはすべて削除」などの処理がある場合に期待通りにすべて消えてくれるかのテストをするときに便利です。もっと便利なやり方あるあるをお待ちしております。
フォルダ作成
テスト用のフォルダ(ファイル)を作成する。7つまとめて実行できる。
1 2 3 4 5 6 7 |
New-Item C:\work\20170221 -itemType Directory New-Item C:\work\20170222 -itemType Directory New-Item C:\work\20170223 -itemType Directory New-Item C:\work\20170224 -itemType Directory New-Item C:\work\20170225 -itemType Directory New-Item C:\work\20170226 -itemType Directory New-Item C:\work\20170227 -itemType Directory |
作成した直後の 作成日時 と 更新日時 は以下のように実際に作成した日時になっている。
作成日時を変更する
-Valueオプションの引数"YYYY/MM/DD hh:mm:ss"に年月日と時刻を設定する。
例えば2017年02月21日の午前5:30としたいのであれば、2017/02/21 05:30:00 と指定すればよい。
1 2 3 4 5 6 7 |
Set-ItemProperty "C:\work\20170221" -Name CreationTime -Value "2017/02/21 05:30:00" Set-ItemProperty "C:\work\20170222" -Name CreationTime -Value "2017/02/22 05:30:00" Set-ItemProperty "C:\work\20170223" -Name CreationTime -Value "2017/02/23 05:30:00" Set-ItemProperty "C:\work\20170224" -Name CreationTime -Value "2017/02/24 05:30:00" Set-ItemProperty "C:\work\20170225" -Name CreationTime -Value "2017/02/25 05:30:00" Set-ItemProperty "C:\work\20170226" -Name CreationTime -Value "2017/02/26 05:30:00" Set-ItemProperty "C:\work\20170227" -Name CreationTime -Value "2017/02/27 05:30:00" |
エクスプローラで確認してみると、作成日時 が変わっていることが確認できる。
更新日時を変更
続いて更新日時を変更する。
更新日時を設定したい場合は、作成日時で指定した-Nameオプションの引数 CreationTime を LastWriteTime に指定する。
1 2 3 4 5 6 7 |
Set-ItemProperty "C:\work\20170221" -Name LastWriteTime -Value "2017/02/21 05:30:00" Set-ItemProperty "C:\work\20170222" -Name LastWriteTime -Value "2017/02/22 05:30:00" Set-ItemProperty "C:\work\20170223" -Name LastWriteTime -Value "2017/02/23 05:30:00" Set-ItemProperty "C:\work\20170224" -Name LastWriteTime -Value "2017/02/24 05:30:00" Set-ItemProperty "C:\work\20170225" -Name LastWriteTime -Value "2017/02/25 05:30:00" Set-ItemProperty "C:\work\20170226" -Name LastWriteTime -Value "2017/02/26 05:30:00" Set-ItemProperty "C:\work\20170227" -Name LastWriteTime -Value "2017/02/27 05:30:00" |
再度、エクスプローラで確認してみると同じように 更新日時 が指定した日時に変わっている。
続いて、少し遊んでみますか。
更新日時を作成日時より前(以下の例では1か月前)に指定してみる。
1 2 3 4 5 6 7 |
Set-ItemProperty "C:\work\20170221" -Name LastWriteTime -Value "2017/01/21 05:30:00" Set-ItemProperty "C:\work\20170222" -Name LastWriteTime -Value "2017/01/22 05:30:00" Set-ItemProperty "C:\work\20170223" -Name LastWriteTime -Value "2017/01/23 05:30:00" Set-ItemProperty "C:\work\20170224" -Name LastWriteTime -Value "2017/01/24 05:30:00" Set-ItemProperty "C:\work\20170225" -Name LastWriteTime -Value "2017/01/25 05:30:00" Set-ItemProperty "C:\work\20170226" -Name LastWriteTime -Value "2017/01/26 05:30:00" Set-ItemProperty "C:\work\20170227" -Name LastWriteTime -Value "2017/01/27 05:30:00" |
エクスプローラで確認すると、ちゃんと指定した日時に変わることを確認できる。
みなさんは楽しんでますか?
おしまい。