【PowerShell】更新日やメディアの撮影日を元にファイル名をリネームするスクリプト

PowerShellカテゴリを表すパンダのイラスト PowerShell

PowerShellを使用して、ファイルの更新日やメディアの撮影日を元にファイル名を統一・リネームするスクリプトです。

この記事でできること

写真や動画ファイル(.jpg, .3gp, .MOVなど)のファイル属性から「更新日」または「メディアの撮影日」を取得し、YYYY-MM-DD-HH-MM-00-連番 形式のファイル名へ一括でリネームします。ファイル名がバラバラになってしまったファイル群の整理に便利です。

前提条件

  • Windows環境(PowerShellが実行可能なこと)
  • Shell.Application COMオブジェクトを利用するため、Windowsのエクスプローラー機能に依存します。

スクリプト全体

# 取得フォーマット: YYYY-MM-DD-HH-MM-00-連番
# 連番は関数を呼び出すたびにカウントアップします
function Get更新日String([string]$FilePath, [string]$Extension, [ref]$連番){
    # ファイルの指定
    $File = $script:Folder.parseName($FilePath)

    # 詳細プロパティの取得(208: メディアの撮影日, 3: 更新日)
    # $GET = $script:Folder.GetDetailsOf($File, 208)
    $GET = $script:Folder.GetDetailsOf($File, 3)

    Write-Host $Get
    $a = $GET.Replace("/", "-")
    $b = $a.Replace(":", "-")
    $c = $b.Replace(" ", "-")
    $d = $c + "-00" # 秒がないため00秒を固定で付与
    $e = $連番.value.ToString("-0000")
    $連番.value++ # インクリメント

    $f = $d + $e + $Extension
    return $f
}

# 開始連番を指定
$連番 = 1

# ターゲットのファイルパスを指定
$FolderPath = "C:\path\to\photo\"

# シェルオブジェクトを作成(スクリプト内でグローバル利用)
$script:Shell = New-Object -ComObject Shell.Application

# フォルダの指定
$script:Folder = $Shell.NameSpace($FolderPath)

# 指定パスへ移動
Set-Location $FolderPath

# 3gpファイルの処理例
$TargetFiles = Get-ChildItem * -Filter "*.3gp"
foreach ($OldName in $TargetFiles) {
    Write-Host $OldName.Name
    $NewFileName = Get更新日String $OldName.Name $OldName.Extension ([ref]$連番)
    Write-Host $NewFileName

    Rename-Item -Path $OldName.Name -NewName $NewFileName
}

使い方と注意点

$FolderPath 変数に対象となるフォルダのパスを設定し、PowerShellコンソールで実行してください。対象の拡張子やフィルター条件を変更することで、様々なファイル形式に対応可能です。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更コードブロックがblockquoteタグ内にテキストとして露出していた問題を修正し、適切なコード表示に改善しました。
  • 追加スクリプトの前提条件と実行手順の解説を追加しました。

文書情報

記事タイトル
【PowerShell】更新日やメディアの撮影日を元にファイル名をリネームするスクリプト
作成日
更新日
Source URL
https://papanda925.com/?p=669

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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