Advertisement
Guest User

FOR DO

a guest
Apr 13th, 2012
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.01 KB | None | 0 0
  1. Используйте FOR. См справку: for /?
  2. Справка большая и уедит за окно Фара, лучше вот так:
  3. for /? >> cmd.for.help.txt
  4.  
  5. Кусок:
  6.  
  7. FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
  8.  
  9. Набор содержит имена одного или нескольких файлов, которые по очереди
  10. открываются, читаются и обрабатываются. Обработка состоит в чтении
  11. файла, разбивки его на отдельные строки текста и выделения из каждой
  12. строки заданного числа подстрок (в том числе нуля). Затем найденная
  13. подстрока используется в качестве значения переменной при выполнении
  14. основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла
  15. первое слово, очищенное от окружающих его пробелов. Пустые строки
  16. в файле пропускаются. Необязательный параметры "ключи" служит для
  17. переопределения заданных по умолчанию правил обработки строк. Ключи
  18. представляют собой заключенную в кавычки строку, содержащую указанные
  19. параметры. Ключевые слова:
  20.  
  21. eol=c - определение символа комментариев в конце строки
  22. (допускается задание только одного символа).
  23. skip=n - число пропускаемых при обработке строк в начале
  24. файла.
  25. delims=xxx - определение набора разделителей для замены заданных
  26. по умолчанию пробела и знака табуляции.
  27. tokens=x,y,m-n - определение номеров подстрок, выделяемых из каждой
  28. строки файла и передаваемых для выполнения в тело
  29. цикла. При использовании этого ключа создаются
  30. дополнительные переменные. Формат m-n представляет
  31. собой диапазон подстрок с номерами от m по n. Если
  32. последний символ в строке tokens= является
  33. звездочкой, создается дополнительная переменная,
  34. значением которой будет весь оставшийся текст в
  35. строке после обработки последней подстроки.
  36. usebackq - применение новой семантики, при которой строки,
  37. заключенные в обратные кавычки, выполняются как
  38. команды, строки, заключенные в прямые одиночные
  39. кавычки, являются строкой литералов команды, а
  40. строки, заключенные в двойные кавычки, используются
  41. для выделения имен файлов в списках имен файлов.
  42.  
  43. Поясняющий пример:
  44.  
  45. FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
  46.  
  47. эта команда обрабатывает файл myfile.txt, пропускает все строки, которые
  48. начинаются с символа точки с запятой, и передает вторую и третью подстроки
  49. из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или
  50. пробелами. В теле цикла переменная %i используется для второй подстроки,
  51. %j - для третьей, а %k получает все оставшиеся подстроки после третьей.
  52. Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки.
  53. Для того чтобы использовать двойные кавычки, необходимо использовать
  54. параметр usebackq, иначе двойные кавычки будут восприняты как границы
  55. строки для обработки.
  56.  
  57. Переменная %i явно описана в инструкции for, а переменные %j и %k
  58. описываются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь
  59. из одной строки файла до 26 подстрок, при этом, не допускается
  60. использование переменных больших чем буквы 'z' или 'Z'. Следует помнить,
  61. что имена переменных FOR являются глобальными, поэтому одновременно не
  62. может быть активно более 52 переменных.
  63.  
  64. Синтаксис команды FOR /F также позволяет обработать отдельную строку,
  65. с указанием параметра filenameset, заключенным в одиночные кавычки.
  66. Строка будет обработана как единая строка из входного файла.
  67.  
  68. Наконец, команда FOR /F позволяет обработать строку вывода другой команды.
  69. Для этого следует ввести строку вызова команды в апострофах вместо набора
  70. имен файлов в скобках. Строка передается для выполнения обработчику
  71. команд CMD.EXE, а вывод этой команды записывается в память и
  72. обрабатывается так, как будто строка вывода взята из файла. Например,
  73. следующая команда:
  74.  
  75. FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
  76.  
  77. выведет перечень имен всех переменных среды, определенных в настоящее
  78. время в системе.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement