Ищите * .dll, но выводите только те версии c, которые указаны с помощью Powershell - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть скрипт в Powershell:

$100DLLPath = (Get-ChildItem -Path c:\ -Recurse -erroraction 'silentlycontinue' -Include *100.dll)
$VersionInfo100 = (Get-ChildItem $100DLLPath).VersionInfo
Write-Host $VersionInfoATL100 | FT

Теперь он будет отображать свойства любого * .100.dll. То, что я хочу сделать, это искать те же DLL, но отображать только те, которые соответствуют определенной версии файла.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Для сравнения версий лучше использовать их не как строки, а как System.Version объектов.

Примерно так:

# the version you want to comare against
[version]$version = '2000.1.2.3'          # Major.Minor.Build.Revision

Get-ChildItem -Path C:\ -Filter '*100.dll' -Recurse -ErrorAction SilentlyContinue | 
    Where-Object { $_.VersionInfo.FileVersionRaw -ge $version } |   # or any other comparison operator
    ForEach-Object { $_.VersionInfo } | Format-Table -AutoSize

Вместо FileVersionRaw вы также можете сделать это для свойства ProductVersionRaw. Оба объекта [версия].

0 голосов
/ 02 апреля 2020
$100DLLPath = (Get-ChildItem -Path c:\ -Recurse -erroraction 'silentlycontinue' -Include *100.dll)
foreach ($dll in $100DLLPath) {
    if ($dll.VersionInfo -match '1\.2\.3\.4') {
        ## emit file info
        $dll.VersionInfo
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...