```text
REM Комментарий
rem экранирование специальных символов & | < > ^ и перехода на следующую строку с помощью ^
echo ^>output^|^^
REM для выключения отладочного вывода в начале командного файла добавить строку:
@ECHO OFF
CALL :name а b
...
GOTO :EOF
:name
... %1 %2
EXIT /B
Варианты условий|Значение
--|--
ERRORLEVEL *число*|код завершения программы не меньше числа
"стр1" == "стр2"|равенство строк
EXIST имя_файла|файл существует
При включении SETLOCAL ENABLEEXTENSIONS
Варианты условий|Значение
--|--
/I "стр1" EQU "стр2"|сравнение строк с игнорированием регистра
"стр1" EQU "стр2"|можно указать EQU,NEQ,LSS,LEQ,GTR,GEQ
DEFINED имя|определена переменная
```text
FOR %%I IN (a b c d) DO echo %%I
REM в командной строке вместо %%I писать %I
REM цикл по файлам
FOR %%F IN (*.txt *.doc) DO echo %%F
REM цикл по папкам
FOR /D %%F IN (*) DO echo %%F
REM рекурсивно по всем файлам папки C:\FOLDER
FOR /R C:\FOLDER %%F IN (*) DO echo %%F
FOR /L %%I IN (1,1,10) DO echo %%I
REM чтение из файла
FOR /F "delims=" %%S IN (имя_файла) DO (
...
)
REM разбиение строки и перестановка
FOR /F "tokens=1,2,3 delims=." %%D IN ("05.03.2021") DO SET DT=%%E/%%D/%%F
REM обработка результатов другой программы с разбиением
FOR /F "usebackq tokens=1* delims==" %%S IN (`set`) DO (
echo %%S
echo %%T
)
```
Для переменных в циклах по файлам (%%) и параметров командных файлов (%) можно применить следующие расширения:
Расширение|Значение
--|--
%\~F | из переменной %F удаляются обрамляющие кавычки (")
%\~fF| переменная %F расширяется до полного имени файла
%\~dF| из переменной %F выделяется только имя диска
%\~pF| из переменной %F выделяется только путь к файлу
%\~nF|из переменной %F выделяется только имя файла
%\~xF|из переменной %F выделяется расширение имени файла
%\~sF|полученный путь содержит только короткие имена
%\~aF|переменная %F расширяется до атрибутов файла
%\~tF|переменная %F расширяется до даты /времени файла
%\~zF|переменная %F расширяется до размера файла
%\~$PATH:F|проводится поиск по каталогам, заданным в PATH, и расширение до полного имени
Можно делать комбинацию %%\~dpF - только диск и путь, %%\~nxF - имя и расширение.