【PowerShell】ファイル名をリネームする上で必要な【GetDetailsOf】の番号を取得するスクリプト

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

はじめに

WindowsのPowerShellを使ってファイルのプロパティ情報を取得する際、Shell.ApplicationオブジェクトのGetDetailsOfメソッドを利用すると便利です。特に写真や動画のリネームを行う際、どの番号(インデックス)にどの日付やプロパティが格納されているかを確認するのに役立ちます。

この記事では、指定したフォルダ内にあるファイルのGetDetailsOfの番号と対応する値の一覧をコンソールに出力するスクリプトと使い方を解説します。

前提条件

  • 実行環境:Windows PowerShell 5.1 または PowerShell 7以降
  • 対象:COMオブジェクト(Shell.Application)を利用するためWindows環境が必須です。

GetDetailsOfの番号を取得するスクリプト

以下のスクリプトは、指定したファイルのパスを元に、インデックス番号0から310までのプロパティ名と値のペアを一覧表示します。

$path = "Z:\photo\スマホ\sample.jpg"
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf

$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)

0..310 | ForEach-Object {
    $propName = $shellfolder.GetDetailsOf($null, $_)
    $propValue = $shellfolder.GetDetailsOf($shellfile, $_)
    if ($propName) {
        "{0}: {1} = {2}" -f $_, $propName, $propValue
    }
}

実行手順と使い方

  1. 上記のスクリプト内の $path の値を、実際に確認したいファイル(画像や動画など)のフルパスに変更します。
  2. PowerShellを起動し、スクリプトを実行します。
  3. 出力結果から、例えば「撮影日時」や「更新日時」が何番に割り当てられているかを確認します(環境やOSの言語設定によってインデックス番号が異なる場合があります)。

実務上の注意点

約10年にわたる写真や動画の整理では、デバイスやメーカーによってExif情報の持ち方や保存場所が異なります。統一的な保存箇所に日付がない場合や、日付のメタデータが欠損している場合があるため、必要に応じて「更新日時」や「メディアの撮影日時」などを複合的に確認しながらリネーム処理を組み立てることをおすすめします。

この記事の更新履歴

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

2026年9月12日

  • 変更引用タグ内に配置されていたPowerShellスクリプトを、適切なコードブロック形式に変更しました。
  • 追加スクリプトの前提条件、実行手順、および出力結果の見方に関する解説を追加しました。

文書情報

記事タイトル
【PowerShell】ファイル名をリネームする上で必要な【GetDetailsOf】の番号を取得するスクリプト
作成日
更新日
Source URL
https://papanda925.com/?p=670

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

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