Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

SETLOCAL EnableDelayedExpansion



FOR /F "skip=5 tokens=1,5" %%I IN ('dir') DO (

SET /A LINE_NO=LINE_NO + 1

>>Result.txt @ECHO Строка #:!LINE_NO! Данные: %%I %%J

)

Команда CHCP1251 включает режим обработки текстовых данных в кодировке 1251.

Команда SETLOCAL EnableDelayedExpansion включает режим развертывания значения переменных во время выполнения кода (позднее развёртывание), а не в момент запуска скрипта (раннее развертывание), как это действует по-умолчанию. Для использования режима позднего развёртывания переменная должна быть заключена в знаки!, а не %.

Команда DIR выводит следующее:

C:\Users\User>dir

Том в устройстве C не имеет метки.

Серийный номер тома: 2CFE-B0B6

Содержимое папки C:\Users\User

23.10.2011 10:51 <DIR>.

23.10.2011 10:51 <DIR>..

15.10.2011 13:21 39 file1.txt

15.10.2011 13:21 7 file2.txt

Приведенный цикл будет обрабатывать все строки, которые выдает команда DIR, за исключением первых пяти. При обработке команда FOR будет из каждой строки выделять колонки, которые отделены друг от друга символами пробела или табуляции. В данном примере будут взяты колонки №1 (дата) и %5 (имя файла).

Команда SET /A LINE_NO=LINE_NO + 1 будет увеличивать значение переменной LINE_NO при каждой итерации цикла на единицу.

Команда >>Result.txt @ECHO Строка #:!LINE_NO! Данные: %%I %%J будет выводить в файл Result.txt строки вида Строка #<номер строки> Данные: <дата> <имя файла>.

Обратите внимание на то, что переменная LINE_NO обрамлена символами!. Если бы она была обрамлена символами %, то конструкция %LINE_NO% была бы заменена значением переменной LINE_NO в момент запуска скрипта и при всех итерациях цикла не менялась.





Дата публикования: 2015-10-09; Прочитано: 185 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...