Урок 9 по cmd - цикл for, обробка текстових рядків

У цій статті ми розглянемо загальні як використовується цикл командного рядка for для обробки текстових рядків і файлів. Тут буде фігурувати ключ / f, який змінює логіку роботи циклу командної строї (cmd) for і дозволяє виробляти розбір будь-якого тексту по поличках, так би мовити.

Урок 9 по cmd - цикл for, обробка текстових рядків

Цикл cmd for - обробка тексту

Для обробки тексту або вмісту текстового файлу з наведеною нижче конструкція:

for / f [ "параметри"] %% змінна in (джерело) do (оператор)

Тут "параметри" задають параметри пошуку, ми їх розглянемо нижче, "джерело" - тут потрібно вказати або шлях до текстового файлу, або текст, або висновок команд, "оператор" - тут власне, знаходяться команди для обробки тексту. Сам текст можна зберігати в змінної. ім'я якої ми поставимо в якості джерела.

Значення "параметри" може бути одним або комбінацією таких параметрів:

skip - дозволяє в циклі cmd for задати кількість рядків, які потрібно пропустити, рахунок йде з початку файлу, наприклад, "skip = 10" - в даному випадку будуть пропущені рядки від першої до десятої.

delims - Можна встановити додаткові роздільники рядка на підрядка. Так, стандартними роздільниками є пробіл і символ табуляції. Наприклад, "delims =. "- тут ми визначили, що коми, крапки і двокрапки являють-ся роздільниками.

tokens - даний параметр командної стоки циклу for cmd дозволяє вказати, які номери полів рядка, отриманих із заданого тексту, потрібно передати для обробки в цикл. Отримані поля будуть зберігатися в окремій змінної. Фактично, якщо приймати кожне слово рядка як окремий елемент, то параметр tokens дозволяє вказати, які саме слова за рахунком потрібно обробити. Як згадувалося вище, стандартним роздільником є ​​пробіл і табуляція.

Для додаткової змінної, як і для змінної ініціалізації, як ім'я вказується латинська буква, велика чи маленька. Значення можна вказувати як через коми, наприклад, "tokens = 1,4, 9" - перший, четвертий і дев'ятий елемент, так і через діапазон, наприклад, "tokens = 4-11" - з четвертого по одинадцятий. Можна комбінувати: "tokens = 4-10,15,20" - з четвертого по десятий, а також, п'ятнадцятий і двадцятий елемент. Якщо ми вкажемо в якості останнього значення зірочку, то створиться ще одна змінна, яка буде зберігати в собі всі інші елементи (рядки) тексту.

usebackq - даний параметр є досить цікавим і корисним, так як дозволяє виконувати команди, передавши їх як параметр. Включивши цей параметр, подвійні лапки будуть застосовуватися для імен файлів і шляхи до них, зворотні лапки ( `), вони знаходяться на тій же кнопці, що і символ (

) - для виконуваних команд, а одинарні лапки - для літеральних рядків.

Добре, тепер можна розглянути цикл cmd for і роботу з ним на практиці.

Припустимо, у нас є файл test.txt, в якому прописані такі рядки:

Спробуємо виконати такий код: