Составители:
25
15.08.2012 16:38 161 099 arc.rar
17.08.2012 12:32 298 700 docfiles.lst
17.08.2012 17:52 0 list.txt
11.10.2005 03:51 302 080 Rar.exe
16.08.2012 14:12 2 862 report.txt
29.05.2006 12:44 22 089 words15.08.2012.txt
11 файлов 812 090 байт
0 папок 276 914 065 408 байт свободно
С помощью команды for осуществляется разбор каждой строки вывода
команды и в первом столбце выделяется год создания файла. После этого на экран
выводится информация только о тех файлах, которые были созданы после 2011
года. Для ключа TOKENS в последнем примере будут идентичными следующие
определения:
TOKENS=1,2,3,4; TOKENS=1,2,3-4; TOKENS=1-4.
В последнем примере обращает на себя внимание не встречавшееся ранее
обращение к переменным вида !имя_переменной! Такое обращение характерно
для работы с переменными в команде цикла или внутри блока команд цикла. Оно
связано с внутренними особенностями работы командного интерпретатора с пе-
ременными в этих областях кода. Обычное обращение %имя_переменной% при-
водит к ошибкам и чтобы избежать проблем с инициализацией и работой с пере-
менными в таком контексте необходимо использовать в командном файле дирек-
тиву
SETLOCAL ENABLEDELAYEDEXPANSION,
и сами переменные в командах
цикла (и условных командах) обрамлять символами ‘!’.
В команде for /f можно также обработать отдельную строку. Для этого
следует ввести нужную строку в кавычках вместо набора имен файлов в скобках.
Обработка будет выполнена аналогично каждой отдельной строке файла в преды-
дущих примерах. Например, файл следующего содержания:
@ECHO OFF
for /f " TOKENS=2,3* DELIMS=, " %%i in ("Один, Два Три,
Четыре, Пять, Шесть, Семь”) do @ECHO %%i:%%j:%%k
выведет:
Два Три: Четыре: Пять, Шесть, Семь
Команда for разбирает строку по заданному разделителю (,) и выводит
значение второй (%%i), третьей(%%j) строк и хвоста строки (%%k) .
Еще одной возможностью оператора for, уже встречавшейся при изучении
параметров командных файлов, является расширение переменных цикла до пол-
ного пути, расширения, имени файла, его размера и т.п. В таблице 10 еще раз опи-
саны эти расширения для параметра %%i.
Таблица 10. Операторы для переменных команды for
Операторы
Описание
%%~Fi Переменная %i расширяется до полного имени файла
%%~Di Из переменной %i выделяется только имя диска
%%~Pi Из переменной %i выделяется только путь к файлу
%%~Ni Из переменной %i выделяется только имя файла
%%~Xi Из переменной %i выделяется расширение имени файла
%%~Si Значение операторов N и X для переменной %i изменяется
так, что они работают с кратким именем файла
%%~Ti Дата и время создания файла
%%~Zi Размер файла
15.08.2012 16:38 161 099 arc.rar 17.08.2012 12:32 298 700 docfiles.lst 17.08.2012 17:52 0 list.txt 11.10.2005 03:51 302 080 Rar.exe 16.08.2012 14:12 2 862 report.txt 29.05.2006 12:44 22 089 words15.08.2012.txt 11 файлов 812 090 байт 0 папок 276 914 065 408 байт свободно С помощью команды for осуществляется разбор каждой строки вывода команды и в первом столбце выделяется год создания файла. После этого на экран выводится информация только о тех файлах, которые были созданы после 2011 года. Для ключа TOKENS в последнем примере будут идентичными следующие определения: TOKENS=1,2,3,4; TOKENS=1,2,3-4; TOKENS=1-4. В последнем примере обращает на себя внимание не встречавшееся ранее обращение к переменным вида !имя_переменной! Такое обращение характерно для работы с переменными в команде цикла или внутри блока команд цикла. Оно связано с внутренними особенностями работы командного интерпретатора с пе- ременными в этих областях кода. Обычное обращение %имя_переменной% при- водит к ошибкам и чтобы избежать проблем с инициализацией и работой с пере- менными в таком контексте необходимо использовать в командном файле дирек- тиву SETLOCAL ENABLEDELAYEDEXPANSION, и сами переменные в командах цикла (и условных командах) обрамлять символами ‘!’. В команде for /f можно также обработать отдельную строку. Для этого следует ввести нужную строку в кавычках вместо набора имен файлов в скобках. Обработка будет выполнена аналогично каждой отдельной строке файла в преды- дущих примерах. Например, файл следующего содержания: @ECHO OFF for /f " TOKENS=2,3* DELIMS=, " %%i in ("Один, Два Три, Четыре, Пять, Шесть, Семь”) do @ECHO %%i:%%j:%%k выведет: Два Три: Четыре: Пять, Шесть, Семь Команда for разбирает строку по заданному разделителю (,) и выводит значение второй (%%i), третьей(%%j) строк и хвоста строки (%%k) . Еще одной возможностью оператора for, уже встречавшейся при изучении параметров командных файлов, является расширение переменных цикла до пол- ного пути, расширения, имени файла, его размера и т.п. В таблице 10 еще раз опи- саны эти расширения для параметра %%i. Таблица 10. Операторы для переменных команды for Операторы Описание %%~Fi Переменная %i расширяется до полного имени файла %%~Di Из переменной %i выделяется только имя диска %%~Pi Из переменной %i выделяется только путь к файлу %%~Ni Из переменной %i выделяется только имя файла %%~Xi Из переменной %i выделяется расширение имени файла %%~Si Значение операторов N и X для переменной %i изменяется так, что они работают с кратким именем файла %%~Ti Дата и время создания файла %%~Zi Размер файла 25
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »