Получить подтипы VersionInfo - PullRequest
       0

Получить подтипы VersionInfo

0 голосов
/ 25 октября 2019

Я хотел бы получить несколько атрибутов файла из команды Powershell Get-Item или Get-ItemProperty

Get-Item -Path c:\windows\system32\gdi32.dll | Select Name, Length, VersionInfo.ProductVersion, VersionInfo.FileVersion, CreationTime, LastAccessTime, LastWriteTime

Get-ItemProperty -Path c:\windows\system32\gdi32.dll -Name Name, Length, VersionInfo.ProductVersion, CreationTime, LastAccessTime, LastWriteTime

Обе команды не дают мне VersionInfo.ProductVersion

1 Ответ

2 голосов
/ 25 октября 2019

Когда вы передаете VersionInfo.ProductVersion в качестве аргумента параметра функции, PowerShell интерпретирует его как строку «VersionInfo.ProductVersion» и начинает поиск свойства с этим точным именем . Но объект FileInfo не имеет такого свойства, поэтому он не работает.

Вам понадобится вычисленное свойство, чтобы получить значения свойств VersionInfo:

Get-Item ... |Select Name,Length,@{Name='ProductVersion';Expression={$_.VersionInfo.ProductVersion}},@{Name='FileVersion';Expression={$_.VersionInfo.FileVersion}},CreationTime,LastAccessTime,LastWriteTime

Вы также можете заранее подготовить все имена свойств в виде массива:

$ItemProperties = @(
    'Name'
    'Length'
    @{Name = 'ProductVersion'; Expression = {$_.VersionInfo.ProductVersion}}
    @{Name = 'FileVersion'; Expression = {$_.VersionInfo.FileVersion}}
    'CreationTime'
    'LastAccessTime'
    'LastWriteTime'
)

Get-Item ... |Select $ItemProperties
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...