●ファイルの「作成日時」を変更する方法(Windows PowerShell、などで。)
※まだ書きかけです。すみません。
※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。
バッチファイルやドラッグ、Ctrl+CとV、などでファイルをコピーすると、更新日時は変わらないのでいいんですが、「作成日時」がその操作をした日に変わってしまって、困ることがあります。
あまりそういうシーンは多くは無いといえばそうなのですが、でも、たまに、
「作成日時」から何かを思い出したいとか、推測したい、などのことがあって
「困る」場合があります。
よって、その場合に、ファイルの「作成日時」のほうを書き変える方法の1つです。
フリーウェアで一括で、という方法もあると思いますが、とりあえず、Windows10や11に標準装備されている「Windows PowerShell」で。
スタートボタンを右クリック→「Windows PowerShell」にて、以下のようにコマンド実行。
更新日時を基準にするか、その他のなんらかの日時を基準に、作成日を変更します。
(※「管理者として実行」じゃなくても、普通のほうの「Windows PowerShell」でダイジョブです。)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
' ' '作成日時の変更 Set-ItemProperty "D:\1\111.mhtml" -name CreationTime -value "2023/11/29 00:13:56" '更新日時の変更 Set-ItemProperty "D:\1\111.mhtml" -name LastWriteTime -value "2023/11/29 00:13:56" 'アクセス日時の変更 Set-ItemProperty "D:\1\111.mhtml" -name LastAccessTime -value "2023/11/29 00:13:56" ' ' |
上記は、
「裏技? ファイルの「作成日時」を変更する」
https://news.mynavi.jp/article/win10tips-487/
を参考にしました。
残念ながらコマンドプロンプト単独ではできないようです。
(コマンドプロンプトとPowerShellの合わせ技、みたいなのはできるらしいです。)
更新日時、アクセス日時、も変えられるようです。
以下引用。
『「更新日時」を変更する場合は、コマンドレットの引数、
「-name CreationTime」を「-name LastWriteTime」に、
「アクセス日時」では「-name LastAccessTime」に、
変更してほしい。』
なお、「作成日時と更新日時を一括で同じ日時にしたい」という場合は、
フリーウェアがあるようです。
参考→「フォルダごとファイルの更新日・作成日を変更する(一括)」
EzFileAgeというソフトを使う方法のようです。
↓EzFileAgeのダウンロード
https://www.vector.co.jp/download/file/win95/util/fh517555.html
コマンドラインも使えるフリーウェアなら、VBAなどでからもできるかもしれません。
FireFileCopyというフリーウェアを使うと、作成日時もコピーしてくれるので便利です。
ただ、大量ファイルだと(かつ、フォーマットが危ういUSBメモリなどだと)、うまくコピーできないかもしれません。
結局、ファイルの作成日時はともかく、せめて「作成日」だけでも「正確」なほうがいいので、ファイル名の先頭に作成日をプレフィックスとして「2024-01-02_・・・・・」みたいに付けたほうがいいかもしれません。
何もしなくて済むので。
つまり、「作成日がいくら変わろうが、本記事のようなことなんて、もともとしなくて済む」わけですから。
また、同じファイル名で「第××版」みたいな版管理をしたいなら、
なおさら、ファイル名の先頭に作成日をプレフィックスとして「2024-01-02_・・・・・」みたいに付けるだけでいいかもしれません。
よく考えたら、ファイル名のほうで検索すればいいだけですし、
「第××版」ということなら、日付や日時のプレフィックスも含めてファイル名を付けてしまえばOKですから・・・。
何にしても、「更新日」のほうは、コピーしようが移動しようが変わらないので・・・。
以前のNTFSは「ストリーム」という機能があって、それでメモ的、タグ的に使えましたが、今はそれもないし、例えばUSBメモリにコピーしたい時、「eFAT」や「FAT32」などでコピーされていたら、ストリーム情報は消去されてしまいます。
結局、ファイル名の中に残すのがいちばん、となってしまいます。
UWSCなどで、時刻も込みの「日時」の文字列(もちろんファイル名に使ってもエラーにならない文字を使って)を、クリップボードへ送ってくれるような小さなスクリプトを作って、タスクバーなどの登録しておくと便利かもしれません。
・・・と思ったらPwer Shellでも一括変更ができるっぽいです。
参考↓
「ファイルの更新日時を一括で変更するコマンド(PowerShell)」
https://va2577.github.io/post/26/
更新日時をなんらかの変数に入れられれば、更新日時を作成日時に一括書き換えできるかも?ですね。
その参考。完全じゃないのであくまで「単なるヒント」です。
(この手のWebページが少ないですね。1つ上のURLのようなWebページばかりで。)
↓
「【Power Shell】ファイルのタイムスタンプを一括で変更する」
https://blog.nekonium.com/powershell-change-timestamp/
「PowerShellでファイルのタイムスタンプを一括変更」
https://harikofu.blog.fc2.com/blog-entry-1745.html
- 投稿タグ
- ビジネスパソコンの基礎, ビジネス一般常識, フリーウェア