Интернет-журнал "Домашняя лаборатория", 2007 №10
Шрифт:
Команда FIND
Ищет в файле или файлах заданную строку текста. После поиска FIND выводит на экран все строки текста, содержащие заданную строку.
FIND [/V] [/С] [/N] [/I] "строка"
[[диск: ][маршрут]имя_файла[…]]
Параметр "строка" (указывается в кавычках) задает группу символов, которую вы хотите найти. Параметр [диск: ][маршрут]имя_файла задает расположение и имя файла, в
Параметр /V выводит все строки, не содержащие заданную строку. Параметр /С выводит только число строк, содержащих заданную строку. /N выводит перед каждой строкой номер строки. /I задает игнорирование регистра символов при поиске (например, "а" и "А" рассматриваются как один символ).
Если искомая строка содержит кавычки, для каждого вхождения кавычек внутри строки нужно указывать символ кавычки дважды.
Если опущено имя_файла, то FIND действует как фильтр, воспринимая ввод из стандартного источника MS-DOS (обычно клавиатура, или файл при использовании перенаправления либо конвейеризации).
В имени файла или в расширении, задаваемых в команде FIND, нельзя использовать трафаретные символы (* и?). Для поиска строки в наборе файлов вы можете использовать FIND в команде FOR.
Если в одной команде заданы параметры /С и /V, то FIND выводит число строк, не содержащих заданную строку. При указании в одной команде /С и /N FIND игнорирует параметр /N.
Команда FIND не распознает возвратов каретки. При использовании FIND для поиска в файле текста, включающем возврат каретки, нужно ограничить строку текстом до возврата каретки.
В приведенной ниже таблице показаны возвращаемые данной командой коды:
Код • Смысл
0 • Поиск завершен успешно. Найдено по крайней мере одно совпадение.
1 • Поиск завершен успешно, но совпадений не найдено.
2 • Поиск завершен неуспешно. При поиске произошла ошибка, и FIND не может сообщить о найденных совпадениях.
Приведем примеры. Чтобы вывести все строки файла MUSIC.DAT, содержащие строку "Pink Floyd", наберите команду:
find "Pink Floyd" music.dat
Для поиска в наборе файлов, например во всех файлах. DAT, можно использовать следующий метод:
for %f in (*.dat) do find "PC Magazine" %f
FIND ищет в файлах. dat строку "PC Magazine".
Команда FOR
Выполняет заданную команду для каждого файла или набора файлов. Эту команду можно использовать в командных файлах или в ответ на командную подсказку.
В первом случае используется синтаксис:
FOR %%переменная IN (множество) DO команда [параметры]
а во втором случае:
FOR %переменная IN (множество) DO команда [параметры]
Параметр %%переменная или %переменная представляет подставляемую переменную. Команду FOR заменяет эту переменную текстом каждой строки в заданном множестве, пока команда после ключевого слова DO не обработает все файлы. "Множество" задает один или более файлов или текстовых строк, которые вы хотите обработать с помощью заданной команды. Скобки обязательны. "Команда" задает команду, выполняемую для каждого включенного в множество файла. "Параметры" задают параметры данной команды (если она их использует). IN и DO — это не параметры, а обязательные ключевые слова команды FOR.
Чтобы избежать путаницы с параметрами командного файла %0 %9, для переменных следует использовать любые числа кроме 0–9. В простом командном файле вам хватит одного символа, например, %%F. Вложенность команд FOR на одной командной строке не допускается.
Параметр "множество" представляет одну или несколько групп файлов. В нем можно использовать трафаретные символы (* и?). Допустимы следующие множества (*.doc), (*.doc *.dat *.rpt), (olg*.doc olgj*.rpt svt*.doc svt*.rpt), (ol??1991.* kr??1991.*).
При использовании команды FOR первое значение в множестве заменяет %%переменную (или %переменную), и MS-DOS выполняет для обработки этого значения заданную команду. Этот процесс продолжается, пока MS-DOS не обработает все файлы (или группы файлов) в множестве.
Предположим, вы хотите использовать команду PRINT для распечатки содержимого всех файлов в текущем каталоге с расширением. DAT и. RPT. Для этого наберите команду:
for %f in (*.dat *.rpt) do print %f
Каждый файл в указанными расширениями подставляется в качестве %F, пока не будет распечатано содержимое всех файлов. В этой команде можно использовать символы конвейеризации и перенаправления. Например, предыдущую команду можно модифицировать следующим образом:
for %f in (*.dat *.rpt) do type %f > prn:
Команда FORMAT
Форматирует диск для использования его MS-DOS. Команда FORMAT создает для диска новый корневой каталог и таблицу распределения файлов. Она может также проверять плохие области на диске и удалять с диска все данные. Чтобы операционная система могла использовать новый диск, задайте для форматирования диска эту команду.
FORMAT диск: [/У[: метка]] [/Q] [/U] [/F: размер][/В /S]
FORMAT диск: [/У[: метка]] [/Q] [/U] [/Т: дор /N: ceKT] [/В /S]
FORMAT диск: [/У[: метка]] [/Q] [/U] [/1] [/4] [/В /S]
FORMAT диск: [/Q] [/U] [/1] [/4] [/8] [/В /S]
Параметр "диск: " задает дисковод, содержащий форматируемый диск. Это обязательный параметр. Если ни один из последующих параметров на задан, FORMAT использует для определения значений по умолчанию тип дисковода.
Если диск был ранее сформатирован, и вы не указали параметр /и, то старая таблица распределения файлов и корневой каталог сохраняются для возможной отмены форматирования. Если вы поняли, что форматируете не ту дискету, используйте команду UNFORMAT.