Windows: Obtém o maior número de pasta numérica no diretório da linha de comando [closed]

0

Suponha que eu tenha um diretório como segue:

<whatever>
<whatever>
<whatever>
<whatever>
<whatever>

Existe um comando que posso executar para obter o maior número, por ex. 42?

    
por Carbon 26.10.2017 / 15:51

1 resposta

2

Tenho certeza de que há uma maneira melhor, mas isso parece funcionar. Para valores positivos, de qualquer forma.

@echo off
SETLOCAL EnableDelayedExpansion

pushd whatever
set h=0
for /d %%d in (*.*) do (    
    set /a x=!h!-%%~nd  
    if "!x:~0,1!"=="-" set h=%%d    
)
popd

echo Highest value is !h!

Primeiro, movemos a pasta whatever .

Em seguida, usamos for /d para percorrer todos os subdiretórios e subtrair o "valor" do nome da pasta ( %%~nd , em que %%d é o nome completo do caminho, e ~n extrai apenas o nome) do atual maior ( !h! ).

Se o resultado x for menor que 0 (começa com - ), significa que encontramos um valor mais alto e sobrescrevemos !h! .

Por fim, voltamos para a pasta em que começamos.

    
por 26.10.2017 / 17:03