2017-11-09 13 views
1

을 표시 이름으로 모든 EXE에 대한 재귀 적으로 검색 할, 등 [-ChildItem을하기]PowerShell을 사용, [-ChildItem을하기] 내가 PowerShell을 사용하여 최대의 FileVersion과하면 FullName

나는 모든 exe를 위해 반복적으로 검색 할 '.NAME'디스플레이로 가장 높은 '.FileVersion'및 '.FullName'

Get-ChildItem -Recurse \\server\loads\*\Product\*.exe | sort Name,FileVersion | Select-Object -Property FileVersion, Name, FullName | Out-GridView 

1 * 인 알파, 베타, 해제 및 2 *가 부 생성물 [수 2 깊이] 및 인 실행 파일

어떻게이 LOADS 공유에 g가 있습니까? 오튼은 어려운하고 5 월 백업과 내가 같은 출력을 찾고 EXE 파일

의 재귀 저장 :

FileVersion Name       FullName 
----------- ----       -------- 
1.0.0.3  PBX.exe   \\server\loads\Beta\product\Platform\PBXInstall\PBXInterface.exe 
2.0.0.0  Door.exe   \\server\loads\Release\product\Platform\DoorInstall\DoorInterface.exe 
1.0.1.3  CA.exe   \\server\loads\Alpha\product\Platform\CAInstall\CAInterface.exe 
1.0.9.3  POS.exe   \\server\loads\Release\product\Platform\POSInstall\POSInterface.exe 

이들 각각은 더이되었을 때 낮은 깊이에서 3 개 폴더 수와 수있다 잘못

를 저장 내가 얻을 필요가 그냥 상관없이 최신

+0

'FileVersion'은 기본 멤버가 아닙니다. 정의 된 위치는 어디입니까? – TheIncorrigible1

+0

[System.Diagnostics.FileVersionInfo] :: GetVersionInfo ("somefilepath"). FileVersion – Ahze85283

+0

업데이트 형식 데이터 -TypeName System.IO.FileInfo -MemberName FileVersion -MemberType ScriptProperty- 값 { [System.Diagnostics.FileVersionInfo] :: GetVersionInfo $ this.FullName) | % { [버전] (($ _. FileMajorPart, $ _. FileMinorPart, $ _. FileBuildPart, $ _. FilePrivatePart) -join ".") } } – Ahze85283

답변

0

나는 당신이 보여주고 싶은 PBX.exe 각 EXE 이름 등을 위해 다음 경로에있는 모든 EXE 파일을 검색 할 것을 이해 출시주기 가장 높은 버전으로의 경로. 여기

내가 윈도우 10

GCI -recurse *.exe | Select -first 20| select name,fullname,@{l='FileVersion';e={[SYSTEM.version]($_.versioninfo.fileversion)}} | group Name | %{$_.Group | sort -descending fileVersion | select -first 1} 

행운을 빕니다에 고안 한 솔루션입니다!

+0

감사합니다 너무 – Ahze85283

0
Get-ChildItem -Recurse -Path '\\server\loads\*\Product\*.exe' | 
    Select-Object -Property @(
     'Name','FullName', 
     @{ N='FileVersion'; 
     E={[Diagnostics.FileVersionInfo]::GetVersionInfo($_.FullName) | 
       ForEach-Object { 
        [Version](($_.FileMajorPart, $_.FileMinorPart, $_.FileBuildPart, $_.FilePrivatePart) -join '.' } 
      } 
     } 
) | 
    Sort-Object -Property 'Name','FileVersion' | 
    Out-GridView 
+0

이 거의 원래의 코드 나는 이미 사용하지 않은 것을 사용하지 않았다. – Ahze85283