Я понимаю, что на этот вопрос уже дан ответ, но если кто-то заинтересован в наборе меньшего количества символов, я считаю, что это самый короткий способ написать это в PS v3 +:
ls application.exe | % versioninfo
ls
- псевдоним для Get-ChildItem
%
- это псевдоним для ForEach-Object
versioninfo
вот сокращенный способ написания {$_.VersionInfo}
Преимущество использования ls
таким образом заключается в том, что вы можете легко адаптировать его для поиска заданного файла в подпапках. Например, следующая команда вернет информацию о версии для всех файлов с именем application.exe
в подпапках:
ls application.exe -r | % versioninfo
-r
- псевдоним для -Recurse
Вы можете уточнить это, добавив -ea silentlycontinue
, чтобы игнорировать такие вещи, как ошибки прав доступа в папках, которые вы не можете найти:
ls application.exe -r -ea silentlycontinue | % versioninfo
-ea
- псевдоним для -ErrorAction
Наконец, если вы получаете эллипсы (...) в своих результатах, вы можете добавить | fl
, чтобы вернуть информацию в другом формате. Это возвращает гораздо больше деталей, хотя и отформатировано в виде списка, а не по одной строке на результат:
ls application.exe -r -ea silentlycontinue | % versioninfo | fl
fl
- псевдоним для Format-List
Я понимаю, что это очень похоже на ответ xcud в том, что ls
и dir
являются псевдонимами для Get-ChildItem
. Но я надеюсь, что мой «самый короткий» метод поможет кому-то.
Последний пример может быть написан от руки следующим образом:
Get-ChildItem -Filter application.exe -Recurse -ErrorAction SilentlyContinue | ForEach-Object {$_.VersionInfo} | Format-List
... но я думаю, что мой путь круче и для некоторых легче запомнить. (Но в основном круче).