
■ jsp
とあるシステム開発で、基準日以降に更新されたファイルの一覧を抽出する処理があるのですが、サーバー移行とか色々とあってファイルの更新日時が書き換わってしまいました。
さて、どうやって復元しましょうかね。
■ 取得
更新日付の取得は、「Get-ItemProperty」コマンドレットで出来るようです。
「aaaa.ps1」というファイルの更新日付を取得してみます。

PS D:¥> Get-ItemProperty aaaa.ps1
ディレクトリ: D:¥
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2017/03/14 14:28 569410 aaaa.ps1
PS D:¥> (Get-ItemProperty aaaa.ps1).LastWriteTime
2017年3月14日 14:28:39
PS D:¥> (Get-ItemProperty aaaa.ps1).LastWriteTime.ToString('yyyy/MM/dd HH:mm:ss')
2017/03/14 14:28:39
PS D:¥>
単純に実行、LastWriteTimeを追加、ToStringで整形と試してみましたが、良い感じで取得できそうです。
■ 変更
更新日付を変更するには、「Set-ItemProperty」コマンドレットを使います。実行して、再取得してみたのですが上手いこと更新日付が変わってくれました。

PS D:¥> Set-ItemProperty aaaa.ps1 -Name LastWriteTime -Value '1999/07/19 21:35:10'
PS D:¥> (Get-ItemProperty aaaa.ps1).LastWriteTime.ToString('yyyy/MM/dd HH:mm:ss')
1999/07/19 21:35:10
PS D:¥>
■ 後書き
ちなみに、作成日付は「LastWriteTime」の部分を「CreationTime」に変えるだけで同じことが出来ました。
最初の話に戻りますが、更新日付を書き換えたいファイルって数百件あります。最初はループ処理でも作ろうかと思ったのですが、面倒になってファイルの数だけ「Set-ItemProperty」を書き込んだスクリプトを作って実行することにしました。そのスクリプトが「aaaa.ps1」だったりします。
要件が「基準日以降に更新されたファイル」で、基準日がコロコロ変わるものでもなかったので、一括変更で十分だったのです。
最新の記事:http://harikofu.blog.fc2.com/
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


