Не вижу точек с запятой!Я вижу двоеточия, но не точки с запятой.
echo if "%cnt%"=="1" (breakLoop)
Если echo
был удален, если cnt
был 1
, то это попыталось бы выполнить breakloop
Вам нужно goto breakloop
, чтобы перейти к метке :breakloop
.
echo if "%cnt%" == "1" ( echo %cnt% file(s) remain! )
Странная вещь о )
- она завершает предыдущий уровень скобок, но (
в операторе echo
считаетсякак обычный текстовый символ.Чтобы первый )
интерпретировался как нормальный символ, вам нужно экранировать его с помощью символа ^
, например: ^)
Если вы запустили этот пакет из приглашения, а не щелкнули по нему, выувидит жалобу cmd
на синтаксис.
Что касается for /f
- ну, если бы вы использовали /o-d
для сортировки в обратном -дате, то первая найденная строка - это файл, который вы хотите сохранить .
Чтобы увидеть синтаксис for
, выполните for /?
из приглашения.Вы найдете удобную опцию skip
, чтобы пропустить первые n
строк списка перед обработкой, поэтому, если бы вы пропустили первую строку с skip=1
, вы бы сохранили младшую и убили оставшуюся часть..