propriétés de fichier étendues, telles que le nom de l'entreprise ou le nom du produit, peuvent être obtenus dans les scripts en utilisant la méthode GetDetailsOf
de l'objet Shell Folder
. La méthode prend un numéro d'index basé sur zéro associé à la propriété étendue et renvoie la valeur de la propriété sous la forme d'une chaîne. En général, GetDetailsOf
peut être utilisé pour récupérer n'importe quel type d'information qui peut être affiché dans la vue Shell détaillée (Affichage -> Choisir les détails). Voir Retrieving Extended File Properties.
Le seul problème est que différentes versions de Windows offrent différents ensembles de propriétés de fichier étendues. Par exemple, Windows XP dispose de 34 propriétés de fichiers, Windows Vista — 266, Windows 7 — 284. Non seulement les indices de propriété peuvent différer, mais aussi les noms de propriété (Durée dans Windows XP = Longueur dans Windows Vista), qui est assez déroutant. Pour une liste complète des propriétés de fichiers disponibles et leurs numéros d'index, voir this page ou utiliser un script comme celui-ci:
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));
Quoi qu'il en soit, le code est ici exemple pour effectuer votre tâche sous Windows Vista. Je ne pouvais pas trouver le Nom interne propriété (pourrait ne pas avoir correctement contrôlée) ainsi inclus la version du fichier et Version du produit à la place:
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));
Notez que vous pouvez utiliser GetDetailsOf(null, property_index)
pour obtenir des paramètres régionaux Les noms de propriété (cela peut être utile sur les versions non-Windows en anglais):
WScript.Echo(oFolder.GetDetailsOf(null, COMPANY_NAME) + ": " + oFolder.GetDetailsOf(oFile, COMPANY_NAME));
merci beaucoup! Vous êtes le meilleur. –