Windows10でファイルやフォルダーのタイムスタンプを変更する方法

Windows10でファイルやフォルダーのタイムスタンプを変更する方法

Windows10でファイルやフォルダーの作成日時や更新日時といったタイムスタンプを変更する場合、サードパーティーのツールを利用しなくても、PowerShellコマンドレットを利用して変更できるのをご存知でしょうか。

ここではWindows10のPowerShellでファイルやフォルダーのタイムスタンプを変更する方法を実行例を交えて紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
Windows10 Pro 64bit 2004

タイムスタンプを変更する

ファイルやフォルダーのタイムスタンプを変更するには、PowerShellの「Set-ItemProperty」コマンドレットを利用します。

基本的な書式は次のとおりです。

PS C:\> Set-ItemProperty <ファイルやフォルダーのパス> -Name <プロパティ名> -Value <日時>

オプション「-Name」では、ファイルやフォルダーのどのタイムスタンプを変更するかを指定し、主に使用するのは「CreationTime(作成日時)」と「LastWriteTime(更新日時)」です。

オプション「-Value」には、日時を"2020/07/14 05:30:00"というように指定します。

実行例

たとえば、ファイル「E:¥test\sample.txt」の作成日時を「2020/07/14 05:30:00」に設定する場合は、次のように実行します。

PS C:\> Set-ItemProperty E:\test\sample.txt -Name CreationTime -Value "2020/07/14 05:30:00"

同じように、フォルダー「E:¥test」の作成日時を「2020/07/14 05:30:00」に設定する場合は、次のように実行します。

PS C:\> Set-ItemProperty E:\test -Name CreationTime -Value "2020/07/14 05:30:00"

特定のフォルダー配下のファイルに対して、更新日時を一括変更する場合は、次のように実行します。

PS C:\> Get-ChildItem E:\test | ForEach-Object {Set-ItemProperty $_.FullName -Name LastWriteTime -Value "2020/07/14 05:30:00"

日付だけを変更して時刻は変更したくない場合は、次のように実行します。

PS C:\> Get-ChildItem E:\test\sample.txt | ForEach-Object {Set-ItemProperty $_.FullName -Name CreationTime -Value ("2020/03/03" + " " + $_.CreationTime.ToString("HH:mm:ss"))}

逆に、時刻だけを変更して日付は変更しない場合は、次のように実行します。

PS C:\> Get-ChildItem E:\test\sample.txt | ForEach-Object {Set-ItemProperty $_.FullName -Name LastWriteTime -Value ($_.LastWriteTime.ToString("yyyy/MM/dd") + " " + "03:00:00")}

あとがき

Linuxでは、ファイルの時刻情報を更新するために「touch」コマンドが用意されており、Windows10で「WSL(Windows Subsystem for Linux)」を利用しているなら、touchコマンドを呼び出して変更するという手もあります。

たとえば、コマンドプロンプトからtouchコマンドを利用するには、コマンドの先頭に「wsl」を付けて「wsl touch <ファイル名>」というように記述します。

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ
トップへ戻る