会社名や製品名などの拡張ファイル プロパティGetDetailsOf
は、ShellFolder
オブジェクトのメソッドを使用してスクリプトで取得できます。このメソッドは、拡張プロパティに関連付けられた 0 から始まるインデックス番号を取得し、プロパティ値を文字列として返します。一般に、詳細なシェル ビュー ( [表示] -> [詳細の選択]GetDetailsOf
)に表示できるあらゆる種類の情報を取得するために使用できます。拡張ファイル プロパティの取得を参照してください。
唯一の問題は、Windows のバージョンが異なれば、提供される拡張ファイル プロパティのセットも異なることです。たとえば、Windows XP には 34 個のファイル プロパティがあり、Windows Vista では 266 個、Windows 7 では 284 個です。プロパティ インデックスが異なるだけでなく、プロパティ名 ( Windows XP での期間= Windows Vista での長さ) も異なるため、かなり混乱します。利用可能なファイル プロパティとそのインデックス番号の完全なリストについては、このページを参照するか、次のようなスクリプトを使用してください。
var oShell = new ActiveXObject("Shell.Application");
var oFolder = oShell.Namespace("C:");
for (var i = 0; i < 300 /* some large number*/; i++)
WScript.Echo(i + " " + oFolder.GetDetailsOf(null, i));
とにかく、これは Windows Vista でタスクを実行するためのサンプル コードです。内部名プロパティが見つからなかった(適切に検索されなかった可能性があります) ため、代わりにファイル バージョンと製品バージョンを含めました。
var COMPANY_NAME = 33;
var FILE_VERSION = 145;
var PRODUCT_NAME = 251;
var PRODUCT_VERSION = 252;
var oShell = new ActiveXObject("Shell.Application");
var oFolder = oShell.Namespace("C:\\Windows");
var oFile = oFolder.ParseName("notepad.exe");
WScript.Echo("Company name: " + oFolder.GetDetailsOf(oFile, COMPANY_NAME));
WScript.Echo("Product name: " + oFolder.GetDetailsOf(oFile, PRODUCT_NAME));
WScript.Echo("File version: " + oFolder.GetDetailsOf(oFile, FILE_VERSION));
WScript.Echo("Product version: " + oFolder.GetDetailsOf(oFile, PRODUCT_VERSION));
を使用して、ロケール固有のプロパティ名を取得できることに注意してくださいGetDetailsOf(null, property_index)
(これは、英語以外の Windows バージョンで役立ちます)。
WScript.Echo(oFolder.GetDetailsOf(null, COMPANY_NAME) + ": " + oFolder.GetDetailsOf(oFile, COMPANY_NAME));