Grep只有最新的目录

时间:2014-02-03 17:47:19

标签: windows batch-file mingw command-line-interface

我有一个应用程序目录,每个目录都包含该应用程序每个版本的目录。

Applications
    MyApp
        MyApp_0.1
        MyApp_0.2
    MyOtherApp
        MyOtherApp_0.1
        MyOtherApp_0.2
        MyOtherApp_0.3

我想要grep这棵树,但它需要太长时间并产生太多旧匹配,所以我只想检查每个应用程序的最高版本。

我会接受使用任何内置的Windows工具,GNU工具或PowerShell的答案,但我对PowerShell不是很熟悉,所以非PowerShell的答案会更好。

1 个答案:

答案 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)
    }
}