Oto nieco prostsza wersja niż kod Joey'a.
@echo off
setlocal enableDelayedExpansion
set max=0
for /f "tokens=1* delims=-.0" %%A in ('dir /b /a-d version-*.jar') do if %%B gtr !max! set max=%%B
echo higest version: version-%max%.jar
Ten kod zadziała, nawet jeśli numery wersji mają zero przedrostków, o ile numer wersji nigdy nie jest równy 0 (zero). Określenie tokenów = 1 * z 0 jako ogranicznikiem powoduje usunięcie zer wiodących z numeru wersji przy zachowaniu wszystkich zer po pierwszej niezerowej cyfrze.
Istnieje prostsze rozwiązanie, jeśli wszystkie wersje mają zerową prefiksję do stałej szerokości. Ale to rozwiązanie działa zarówno z prefiksem zero, jak i bez niego.
Kod Joey'a nie powiedzie się, jeśli występują zera wiodące, ponieważ oznacza to notację ósemkową. Nieprawidłowe cyfry ósemkowe z zerami wiodącymi będą traktowane jako ciągi powodujące porównanie, aby dać zły wynik. Prawdopodobnie nie stanowi to problemu, ponieważ pierwotne pytanie sugeruje, że zera wiodące nie są obecne. Ale lepiej być bezpiecznym niż żałować.
Dzięki, ale czy istnieje w ogóle prostsza metoda? To wydaje się trochę przesadzone - jest to – Dangercrow
Problem polega na tym, że liczby mogą być dłuższe niż jedna cyfra, a następnie każde nieumiejętne sortowanie zepsuje się. – Joey