ファイルやフォルダの作成・更新・アクセス日時を変更する [PowerShell]

スポンサーリンク
Windows

WindowsのPCに最初から入っているPowerShellを使えば、ファイルのプロパティ等に表示される作成日時・更新日時・アクセス日時を変更できます。

スポンサーリンク

準備:PowerShellを起動する

  1. タスクバー左端のスタートボタンをクリックします。(Windowsキー押下でもOK)
  2. そのまま何もクリックせず、キーボードで”powershell”と打ち込みます。
  3. リストに出てきた[Windows PowerShell] をクリックします。
スポンサーリンク

パターン1:特定のファイルを更新する

① ファイルのフルパスを取得する

  1. 日時を更新したいファイルをエクスプローラで表示します。
  2. ファイルのアイコンを、Shiftキーを押しながら右クリックします。
  3. 右クリックメニューから「パスのコピー(A)」をクリックします。

② PowerShellでコマンド実行

  1. メモ帳などに下のコマンドをコピペします。
  2. 「編集ここから」コメント以下にある4つの変数を、以下の通り設定します。
    • $filepath : ①で取得したフルパス
    • $date_create:変更後の作成日時(yyyy/MM/dd hh:mm:ss形式)
    • $date_update:変更後の更新日時(yyyy/MM/dd hh:mm:ss形式)
    • $date_access:変更後のアクセス日時(yyyy/MM/dd hh:mm:ss形式)
  3. PowerShellウィンドウに張り付けて、Enterキーを押します。
#編集ここから#########################
# ①で取得したファイルのフルパスを貼り付けて指定します。
# 下記例では「C:\Work\xxxxxx.txt」です。
$filepath = 'C:\Work\xxxxxx.txt'
# 変更後の作成日時
# 下記例では「2020/02/19 17:17:22」です。
$date_create = '2020/02/19 17:17:22'
# 変更後の更新日時
# 下記例では「2020/02/19 17:31:13」です。
$date_update = '2020/02/19 17:31:13'
# 変更後のアクセス日時
# 下記例では「2020/02/19 18:45:32」です。
$date_access = '2020/02/19 18:45:32'
#編集ここまで#########################
Set-ItemProperty $filepath -name CreationTime -value $date_create #ファイル作成日時
Set-ItemProperty $filepath -name LastWriteTime -value $date_update #ファイル更新日時
Set-ItemProperty $filepath -name LastAccessTime -value $date_access #ファイルアクセス日時
スポンサーリンク

パターン2:特定のフォルダを更新する

① フォルダのフルパスを取得する

  1. 日時を更新したいフォルダをエクスプローラで表示します。
  2. フォルダのアイコンを、Shiftキーを押しながら右クリックします。
  3. 右クリックメニューから「パスのコピー(A)」をクリックします。

② PowerShellでコマンド実行

  1. メモ帳などに下のコマンドをコピペします。
  2. 「編集ここから」コメント以下にある4つの変数を、以下の通り設定します。
    • $dirpath : ①で取得したフルパス
    • $date_create:変更後の作成日時(yyyy/MM/dd hh:mm:ss形式)
    • $date_update:変更後の更新日時(yyyy/MM/dd hh:mm:ss形式)
    • $date_access:変更後のアクセス日時(yyyy/MM/dd hh:mm:ss形式)
  3. PowerShellウィンドウに張り付けて、Enterキーを押します。
#編集ここから#########################
# ①で取得したフォルダのフルパスを貼り付けて指定します。
# 下記例では「C:\Work\test」です。
$dirpath = 'C:\Work\test'
# 変更後の作成日時
# 下記例では「2020/02/19 17:17:12」です。
$date_create = '2020/02/19 17:17:12'
# 変更後の更新日時
# 下記例では「2020/02/19 17:31:13」です。
$date_update = '2020/02/19 17:31:13'
# 変更後のアクセス日時
# 下記例では「2020/02/19 18:45:52」です。
$date_access = '2020/02/19 18:45:52'
#編集ここまで#########################
Set-ItemProperty $dirpath -name CreationTime -value $date_create #ファイル作成日時
Set-ItemProperty $dirpath -name LastWriteTime -value $date_update #ファイル更新日時
Set-ItemProperty $dirpath -name LastAccessTime -value $date_access #ファイルアクセス日時
スポンサーリンク

パターン3:指定フォルダ内のファイル・フォルダをまとめて更新する

指定したフォルダ以下にある、全てのファイル・フォルダ(サブフォルダ含む)を一括更新します。

① フォルダのフルパスを取得する

  1. 日時を更新したいファイルやフォルダが格納されている親フォルダをエクスプローラで表示します。
  2. フォルダのアイコンを、Shiftキーを押しながら右クリックします。
  3. 右クリックメニューから「パスのコピー(A)」をクリックします。

② PowerShellでコマンド実行

  1. メモ帳などに下のコマンド全行をコピペします。
  2. 「編集ここから」コメント以下にある4つの変数を、以下の通り設定します。
    • $dirpath : ①で取得したフルパス
    • $date_create:変更後の作成日時(yyyy/MM/dd hh:mm:ss形式)
    • $date_update:変更後の更新日時(yyyy/MM/dd hh:mm:ss形式)
    • $date_access:変更後のアクセス日時(yyyy/MM/dd hh:mm:ss形式)
  3. PowerShellウィンドウに張り付けて、Enterキーを押します。
#編集ここから#########################
# ①で取得した対象のフォルダ名を指定します
# (注:この中にあるファイル・フォルダ・サブフォルダの日時がすべて変更されます)
$dirpath = 'C:\Work'
# 変更後の作成日時
# 下記例では「2020/02/19 17:17:22」です。
$date_create = '2020/02/19 17:17:22'
# 変更後の更新日時
# 下記例では「2020/02/19 17:31:08」です。
$date_update = '2020/02/19 17:31:08'
# 変更後のアクセス日時
# 下記例では「2020/02/19 18:45:23」です。
$date_access = '2020/02/19 18:45:23'
#編集ここまで#########################
cd $dirpath
Get-ChildItem -Recurse -File | ForEach-Object { Set-ItemProperty $_.FullName -name CreationTime -value $date_create } #ファイル作成日時
Get-ChildItem -Recurse -File | ForEach-Object { Set-ItemProperty $_.FullName -name LastWriteTime -value $date_update } #ファイル更新日時
Get-ChildItem -Recurse -File | ForEach-Object { Set-ItemProperty $_.FullName -name LastAccessTime -value $date_access } #ファイルアクセス日時
Get-ChildItem -Recurse -Directory | ForEach-Object { Set-ItemProperty $_.FullName -name CreationTime -value $date_create } #フォルダ作成日時
Get-ChildItem -Recurse -Directory | ForEach-Object { Set-ItemProperty $_.FullName -name LastWriteTime -value $date_update } #フォルダ更新日時
Get-ChildItem -Recurse -Directory | ForEach-Object { Set-ItemProperty $_.FullName -name LastAccessTime -value $date_access } #フォルダアクセス日時

コメント

タイトルとURLをコピーしました