Команда for у вигляді числового циклу
Команда for дозволяє організувати виконання повторюваних однотипних дій. Можна використовувати її для того, щоб вивести на екран числа від одного до десяти, як показано на наступному лістингу.
for / l %% i in (1,1,10) do echo %% i
Мінлива i називається лічильником циклу. В силу своєрідності синтаксису команди for. ім'я лічильника циклу має складатися з однієї літери. Причому, якщо ми пишемо командний файл, то перед ім'ям лічильника циклу треба поставити здвоєний знак відсотка, якщо ж ми просто набираємо команду в командному рядку, то одиночний.
Логіка роботи цієї команди така. Після слова in вказано діапазон зміни лічильника циклу. В даному варіанті команди це трійка чисел: початкове значення лічильника, крок рахунку, граничне значення лічильника. При виконанні команди командний процесор спочатку присвоїть змінній i значення 1, а потім на кожному кроці циклу буде збільшувати його на 1, поки воно не перевищить 10. Очевидно, таких кроків вийде десять. Якби в якості кроку рахунку ми вказали число 2, то цикл виконався б п'ять разів. На кожному кроці циклу виконується тіло циклу, написане після слова do. У наведеному прикладі це команда echo. яка виводить на екран поточне значення лічильника циклу.
Команда for для перебору файлів
Зазвичай команда for використовується для перебору і обробки файлів. Треба сказати, що в досить простих випадках масова обробка файлів виконується за допомогою підстановки. Якщо, ми хочемо всіх файлів в поточному каталозі замінити розширення .htm на .html. ми вводимо команду ren * .htm * .html. Але якщо те ж саме треба зробити не в одному каталозі, а в дереві каталогів, то без команди for не обійтися. Наведений нижче командний файл виконує цю операцію для всіх htm-файлів в підкаталозі website поточного каталогу. Точніше, у всьому дереві каталогів, яке знаходиться всередині website.
for / r website %% i in (* .htm) do ren %% i %%
Ключ / r вказує на необхідність обходу каталогу website і всіх його нутрощів. Якщо його не вказати (але тоді і каталог вказувати не дозволяється), то оброблені будуть тільки файли в поточному каталозі. Діапазоном значень лічильника циклу в даному варіанті команди є безліч всіх файлів з розширенням .htm, що знаходяться всередині каталогу (точніше, дерева) website. Дивна на перший погляд запис
ni означає, що із значення змінної i потрібно виділити тільки ім'я файлу. У мові команд MS-DOS передбачено кілька таких модифікаторів, наприклад, запис
хi позначає розширення файлу. Все модифікатори описані в довідці по команді for.
Тіло циклу може складатися з декількох команд, укладених в дужки.
for / r website %% i in (* .htm) do (
rem Виводимо ім'я файлу
rem Перейменовуємо файл