Рассмотрим следующий VBScript, который при запуске перечисляет все файлы в текущем каталоге и их свойства:
Option Explicit
Dim oShell : Set oShell = CreateObject("Shell.Application")
Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject")
Dim oFolder : Set oFolder = oShell.Namespace(oFSO.GetParentFolderName(Wscript.ScriptFullName))
Dim oFile, iPos, sHeader(999), sVal
' Get a list of the property names
For iPos = 0 to 999
sHeader(iPos) = oFolder.GetDetailsOf(oFolder.Items, iPos)
Next
' For each file in this folder, print the property name and the value
For Each oFile in oFolder.Items
WScript.Echo "Looking at " & oFile.Name
For iPos = 0 To 999
sVal = oFolder.GetDetailsOf(oFolder.ParseName(oFile.Name), iPos)
If sVal <> "" Then WScript.Echo sHeader(iPos) & " (" & iPos & "): " & sVal
Next
Next
Если я запускаю это в папке, которая содержит только этот файл и с настройкой Windows« Скрыть расширения для известных типов файлов » отключено, тогда я получаю следующий (правильный) вывод:
D:\defect>cscript //NOLOGO list_metadata.vbs
Looking at list_metadata.vbs
Name (0): list_metadata.vbs
Size (1): 740 bytes
Item type (2): VBScript Script File
Date modified (3): 19/02/2012 12:26
Date created (4): 23/02/2012 22:16
Date accessed (5): 23/02/2012 22:16
Attributes (6): A
Perceived type (9): Unspecified
Owner (10): HOME\Richard
Kind (11): Program
Rating (19): Unrated
Computer (53): HOME (this computer)
Filename (155): list_metadata.vbs
Shared (173): No
Folder name (176): defect
Folder path (177): D:\defect
Folder (178): defect (D:)
Path (180): D:\defect\list_metadata.vbs
Type (182): VBScript Script File
Link status (188): Unresolved
Sharing status (269): Not shared
Однако, если я снова запусту это с « Скрыть расширения для известныхтипы файлов"включены, тогда значение для каждого элемента точно совпадает со свойством, а в имени файла в первой строке отсутствует расширение:
D:\defect>cscript //NOLOGO list_metadata.vbs
Looking at list_metadata
Name (0): Name
Size (1): Size
Item type (2): Item type
Date modified (3): Date modified
<b><i>...lots deleted...</i></b>
Frame width (285): Frame width
Total bitrate (286): Total bitrate
Masters Keywords (debug) (287): Masters Keywords (debug)
Masters Keywords (debug) (288): Masters Keywords (debug)
Кто-нибудь знает, как яМожно ли изменить этот код так, чтобы он работал независимо от того, применяется ли этот параметр в Windows?