我有一个应用程序目录,每个目录都包含该应用程序每个版本的目录。
Applications
MyApp
MyApp_0.1
MyApp_0.2
MyOtherApp
MyOtherApp_0.1
MyOtherApp_0.2
MyOtherApp_0.3
我想要grep这棵树,但它需要太长时间并产生太多旧匹配,所以我只想检查每个应用程序的最高版本。
我会接受使用任何内置的Windows工具,GNU工具或PowerShell的答案,但我对PowerShell不是很熟悉,所以非PowerShell的答案会更好。
答案 0 :(得分:1)
$AppDir = 'C:\apps'
$Apps = Get-ChildItem -Path $AppDir -Directory
Foreach($App in $Apps){
$HighestVersion = Get-ChildItem -Path $App.FullName | Sort -Descending | Select -First 1
[PSCustomObject]@{
App=($App.Name);
Version=([Version]($HighestVersion -split '_')[1]); #Convert it to a version for easier comparisons
#Version=(($HighestVersion -split '_')[1]);
Path=($HighestVersion.FullName)
}
}