Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Используйте FOR. См справку: for /?
- Справка большая и уедит за окно Фара, лучше вот так:
- for /? >> cmd.for.help.txt
- Кусок:
- FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
- Набор содержит имена одного или нескольких файлов, которые по очереди
- открываются, читаются и обрабатываются. Обработка состоит в чтении
- файла, разбивки его на отдельные строки текста и выделения из каждой
- строки заданного числа подстрок (в том числе нуля). Затем найденная
- подстрока используется в качестве значения переменной при выполнении
- основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла
- первое слово, очищенное от окружающих его пробелов. Пустые строки
- в файле пропускаются. Необязательный параметры "ключи" служит для
- переопределения заданных по умолчанию правил обработки строк. Ключи
- представляют собой заключенную в кавычки строку, содержащую указанные
- параметры. Ключевые слова:
- eol=c - определение символа комментариев в конце строки
- (допускается задание только одного символа).
- skip=n - число пропускаемых при обработке строк в начале
- файла.
- delims=xxx - определение набора разделителей для замены заданных
- по умолчанию пробела и знака табуляции.
- tokens=x,y,m-n - определение номеров подстрок, выделяемых из каждой
- строки файла и передаваемых для выполнения в тело
- цикла. При использовании этого ключа создаются
- дополнительные переменные. Формат m-n представляет
- собой диапазон подстрок с номерами от m по n. Если
- последний символ в строке tokens= является
- звездочкой, создается дополнительная переменная,
- значением которой будет весь оставшийся текст в
- строке после обработки последней подстроки.
- usebackq - применение новой семантики, при которой строки,
- заключенные в обратные кавычки, выполняются как
- команды, строки, заключенные в прямые одиночные
- кавычки, являются строкой литералов команды, а
- строки, заключенные в двойные кавычки, используются
- для выделения имен файлов в списках имен файлов.
- Поясняющий пример:
- FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
- эта команда обрабатывает файл myfile.txt, пропускает все строки, которые
- начинаются с символа точки с запятой, и передает вторую и третью подстроки
- из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или
- пробелами. В теле цикла переменная %i используется для второй подстроки,
- %j - для третьей, а %k получает все оставшиеся подстроки после третьей.
- Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки.
- Для того чтобы использовать двойные кавычки, необходимо использовать
- параметр usebackq, иначе двойные кавычки будут восприняты как границы
- строки для обработки.
- Переменная %i явно описана в инструкции for, а переменные %j и %k
- описываются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь
- из одной строки файла до 26 подстрок, при этом, не допускается
- использование переменных больших чем буквы 'z' или 'Z'. Следует помнить,
- что имена переменных FOR являются глобальными, поэтому одновременно не
- может быть активно более 52 переменных.
- Синтаксис команды FOR /F также позволяет обработать отдельную строку,
- с указанием параметра filenameset, заключенным в одиночные кавычки.
- Строка будет обработана как единая строка из входного файла.
- Наконец, команда FOR /F позволяет обработать строку вывода другой команды.
- Для этого следует ввести строку вызова команды в апострофах вместо набора
- имен файлов в скобках. Строка передается для выполнения обработчику
- команд CMD.EXE, а вывод этой команды записывается в память и
- обрабатывается так, как будто строка вывода взята из файла. Например,
- следующая команда:
- FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
- выведет перечень имен всех переменных среды, определенных в настоящее
- время в системе.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement