Windowsでファイルの日付またはタイムスタンプを変更する方法

Windowsは、すべてのファイルとフォルダに対して3つの異なる日付/タイムスタンプを保持しています。 「作成日」、「変更日」、「アクセス日」です。 状況によっては、ファイルまたはフォルダの変更、作成、または最後にアクセスされたタイムスタンプを変更する必要がある場合があります。

たとえば、フォルダーの比較と同期に関する記事を書くときに、Robocopy同期メソッドをテストするために、いくつかのファイルのタイムスタンプを変更する必要がありました。 他のユーザーは、バックアップまたはアーカイブのためにファイルの日付または時刻を変更する必要がある場合があります。

この記事では、ファイルの作成日、変更日、最終アクセス日を変更するいくつかの方法を見てみましょう。

ファイルの作成、最終アクセス日または変更日を変更する

PowerShellの使用

PowerShellを使用してファイルの日付を変更するには、次のコマンドを実行する必要があります。

log1.txtという名前のファイルの作成日/タイムスタンプを変更します。

 (Get-Item "D:\ Test \ log1.txt")。CreationTime =( "2019年8月3日17:00:00") 

log1.txtという名前のファイルの最終書き込み日付/タイムスタンプを変更します。

 (Get-Item "D:\ Test \ log1.txt")。LastWriteTime =( "2019年8月3日17:10:00") 

log1.txtという名前のファイルの最終アクセス日付/タイムスタンプを変更します。

$config[ads_text6] not found
 (Get-Item "D:\ Test \ log1.txt")。LastAccessTime =( "2019年8月3日17:10:00") 

Testという名前のフォルダー内のすべてのファイルの日付/タイムスタンプを変更します。

フォルダー内のすべてのファイルのタイムスタンプを変更するには、次の構文を使用します。

 Get-ChildItem -force d:\ test \ * | ForEach-Object {$ _。CreationTime =( "2019年8月3日17:00:00")} Get-ChildItem -force d:\ test \ * | ForEach-Object {$ _。LastWriteTime =( "2019年8月3日17:10:00")} Get-ChildItem -force d:\ test \ * | ForEach-Object {$ _。LastAccessTime =( "2019年8月3日17:10:00")} 

上記のコマンドは、フォルダー内のすべてのファイルとサブフォルダーのタイムスタンプを変更することに注意してください。 ファイルにのみ変更を適用するには(つまり、サブフォルダーを除外)、次の構文を使用します。

 Get-ChildItem -force d:\ test \ * | Where-Object {! $ _。PSIsContainer} | ForEach-Object {$ _。CreationTime =( "2019年8月3日17:00:00")} Get-ChildItem -force d:\ test \ * | Where-Object {! $ _。PSIsContainer} | ForEach-Object {$ _。LastWriteTime =( "2019年8月3日17:10:00")} Get-ChildItem -force d:\ test \ * | Where-Object {! $ _。PSIsContainer} | ForEach-Object {$ _。LastAccessTime =( "2019年8月3日17:10:00")} 

「フォルダー」の最終書き込み日付/タイムスタンプを変更する

 (Get-Item "D:\ Test \")。LastWriteTime =( "2019年8月3日17:00:00") 

フォルダー内のすべてのファイルの作成日、変更日、最終アクセス日を表示する

フォルダ内のすべてのファイルの変更日、作成日、最終書き込み日を表示するには、次のコマンドライン構文を使用します。

 Get-ChildItem -force "D:\ Test \" | Select-Object Name、CreationTime、LastWriteTime、LastAccessTime 

(または)

 foreach(Get-ChildItem "D:\ Test \ *。*"の$ objFile) '+ $ objFile.LastWriteTime +' 

次のような出力が表示されます。

 "log1.txt" | 2019年8月3日17:00:00 | 2019年8月3日17:10:00 | 08/03/2019 17:10:00 "log2.txt" | 2019年8月3日17:00:00 | 2019年8月3日17:10:00 | 08/03/2019 17:10:00 "log3.txt" | 2019年8月3日17:00:00 | 2019年8月3日17:10:00 | 08/03/2019 17:10:00 "log4.txt" | 2019年8月3日17:00:00 | 2019年8月3日17:10:00 | 08/03/2019 17:10:00 


NirsoftからNirCmdを使用する

Nirsoft.netの多目的コマンドラインツールであるNirCmdを使用すると、ファイルの日付とタイムスタンプを変更できます。

NirCmdを使用してファイルのタイムスタンプを変更するコマンドライン構文は次のとおりです。

 nircmd.exe setfiletime [ファイル名またはワイルドカード] [作成日] {変更日} {アクセス日} 
  • 最初のパラメーターは、単一のファイル名またはワイルドカード文字列です。
  • 日付パラメーターは、「dd-mm-yyyy hh:mm:ss」の形式で指定する必要があります。日付パラメーターを指定しない場合、または空の文字列( "")を指定した場合、日付は変更されません。
  • 日付パラメーターとして"now"を指定すると、現在の日付と時刻が使用されます。

 nircmd.exe setfiletime "d:\ test \ log1.txt" "03/08/2019 17:00:00" "" "03/08/2019 17:10:00" nircmd.exe setfiletime "d:\ test \ log2.txt "now now nircmd.exe setfiletime" d:\ test \ log3.txt "now" "now nircmd.exe setfiletime" d:\ test \ log4.txt "" 03/08/2019 17:00:00 「「2019年3月8日17:10:00」」 

フォルダー内のすべてのテキストファイルのタイムスタンプを変更するには、次のコマンドライン構文を使用します。

 nircmd.exe setfiletime "d:\ test \ *。txt" "03/08/2019 17:00:00" "03/08/2019 17:10:00" "03/08/2019 17:10:00" 

NirsoftのBulkFileChangerを使用する

BulkFileChangerは、Nirsoft.netのもう1つの便利なツールで、1つまたは複数のファイルの作成、変更、またはアクセス時刻を変更できます。 また、ファイル属性(読み取り専用、隠しファイル、システム)をまとめて変更することもできます。

BulkFileChangerを起動し、ファイルを追加します。 リストにファイルを追加するとき、オプションでサブフォルダにファイルを追加し、それに応じて再帰レベルを設定することを選択できます。

すべてのファイルを選択し、[ アクション ]メニューから[ 時間/属性の変更 ]をクリックします。

私たちのほとんどはGMTではなく現地時間を入力することを好むため、最初にGMTで指定されている時刻のチェックを外した方がよい場合があります

作成日、変更日、またはアクセス日時を入力します。 すべてのフィールドに現在の時刻を入力するには、下の[ 現在の時刻を入力 ]ボタンをクリックします。

カメラから撮影した画像の場合、EXIFまたはメタデータフィールドには、NTFSの日付変更/作成データとは別の[ 撮影日]フィールドが含まれています。 EXIFデータは、JPGファイルのプロパティから、またはNirsoft.netのExifDataViewユーティリティを使用して表示できます。

つまり、BulkFileChangerでは、 撮影日タイムスタンプ(EXIFメタデータ)を変更することもできます。 日付のメタデータを変更するには、[ 変更なし ]ボタンをクリックして、適切なオプションを選択します。

EXIF-生成時刻取得日メタデータに対応し、このフィールドはファイルエクスプローラーの[ 日付 ]列の下に表示されます。 また、多くのプログラムはこの値を画像の公式の日付/時刻として使用します。

カメラ画像のEXIF日付を変更できるのは、日付/時刻値が.jpgファイル内に既に存在する場合のみであることに注意してください。 BulkFileChangerは、EXIFデータに新しいフィールドを追加できません。

また、オプションで、変更、作成、アクセス、EXIT –生成時刻、EXIT –保存時刻、またはEXIT –変更時刻からタイムスタンプをコピーし、他の日付フィールドに自動的に適用することもできます。

コマンドラインのサポート

BulkFileChangerはコマンドライン操作もサポートしているため、毎回GUIを開く必要はありません。 コマンドラインヘルプ/サポートされている引数のリストについては、BulkFileChangerホームページを確認してください。

関連記事