Предположим, у меня есть каталог следующим образом:
<whatever>\1
<whatever>\3
<whatever>\7
<whatever>\15
<whatever>\42
Есть ли команда, которую я могу запустить, чтобы получить наибольшее число, например, 42?
Предположим, у меня есть каталог следующим образом:
<whatever>\1
<whatever>\3
<whatever>\7
<whatever>\15
<whatever>\42
Есть ли команда, которую я могу запустить, чтобы получить наибольшее число, например, 42?
Я уверен, что есть лучший способ, но это похоже на работу. В любом случае, для положительных ценностей.
@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!
Сначала мы переместимся в whatever папку.
Затем мы используем for /d для циклического перебора всех подкаталогов и вычитаем «значение» имени папки (%%~nd , где %%d - полное имя пути, а ~n извлекает только имя) из текущего старшего значения (!h!).
Если результат x меньше 0 (начинается с -), это означает, что мы нашли более высокое значение и перезаписываем !h! ,
Наконец мы возвращаемся в папку, с которой начали.