使用powershell,[Get ChildItem]我想按名称递归搜索所有exe,显示最高的文件版本和全名
使用powershell, 例如[获取子项] 我想按“.Name”显示最高的“.FileVersion”和“.FullName”递归搜索所有exe使用powershell,[Get ChildItem]我想按名称递归搜索所有exe,显示最高的文件版本和全名,powershell,recursion,versioning,Powershell,Recursion,Versioning,使用powershell, 例如[获取子项] 我想按“.Name”显示最高的“.FileVersion”和“.FullName”递归搜索所有exe Get-ChildItem -Recurse \\server\loads\*\Product\*.exe | sort Name,FileVersion | Select-Object -Property FileVersion, Name, FullName | Out-GridView 第一个*是Alpha、Beta、Release,第二个
Get-ChildItem -Recurse \\server\loads\*\Product\*.exe | sort Name,FileVersion | Select-Object -Property FileVersion, Name, FullName | Out-GridView
第一个*是Alpha、Beta、Release,第二个*是子产品[可能的2个深度]和可执行文件
无论怎样,这种负载共享都变得难以控制,而且可能会导致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个文件夹中都有一个计数,由于存储不正确,在较低的深度中可能有更多
无论发布周期如何,我都需要获取最新版本。我知道您希望搜索路径中的所有exe文件,然后针对每个exe名称(例如PBX.exe),只显示最高版本的路径 这是我在Windows10上设计的解决方案
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}
祝你好运 我知道您希望搜索路径中的所有exe文件,然后针对每个exe名称(例如PBX.exe),您希望仅显示最高版本的路径
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
这是我在Windows10上设计的解决方案
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}
祝你好运
FileVersion
不是默认成员。它是在哪里定义的?[System.Diagnostics.FileVersionInfo]::GetVersionInfo(“somefilepath”).FileVersionUpdate-TypeData-TypeName-System.IO.FileInfo-MemberName-FileVersion-MemberType ScriptProperty-Value{[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName){[Version](($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName){[Version]($\.FileMajorPart,$\.FileMinorPart,$\.FileBuildPart,$\.FilePrivatePart)-join.}}这几乎是我使用的原始代码,没有做任何我没有做的事情这几乎是我使用的原始代码,没有做任何我没有做过的事情
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