Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Использование команды find




Лабораторная работа № 1.

Командная строка ОС Windows

Использование нескольких команд и символов условной обработки

Можно выполнять несколько команд из одной командной строки или сценария с помощью символов условной обработки. При использовании нескольких команд, содержащих символы условной обработки, выполнение команд, стоящих справа от символа условной обработки, будет проводиться в зависимости от результатов выполнения команды, стоящей слева от символа. Например, требуется, чтобы команда выполнялась, только если предыдущая команда не была выполнена успешно. Или требуется, чтобы команда выполнялась, только если предыдущая команда была выполнена успешно.

Для передачи нескольких команд можно использовать специальные символы, перечисленные в следующей таблице.

Символ Синтаксис Определение
& [...] команда1 & команда2 Используется для разделения нескольких команд в одной командной строке. В Cmd.exe выполняется первая команда, затем вторая команда.
&& [...] команда1 && команда2 Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. В Cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.
|| [...] команда1 || команда2 Запускает команду, стоящую за символом ||, только если команда, стоящая перед символом || не была выполнена. В Cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).
() [...] (команда1 & команда2) Используется для группировки или вложения команд.
; или, команда1 параметр1; параметр2 Используется для разделения параметров команды.

Примечания

  • Амперсанд (&), вертикальная черта (|) и скобки () являются специальными символами, которым должен предшествовать управляющий символ (^) или кавычки, если эти символы передаются в качестве аргументов.
  • Если команда завершает операцию успешно, возвращается нулевой (0) код ошибки или не возвращается никакого кода.

Использование пакетных параметров командной строки

Пакетные параметры командной строки используются в пакетном файле для получения информации о настройках среды.

Файл Cmd.exe разворачивает переменные с %0 по %9. При использовании пакетных параметров переменная %0 заменяется на имя пакетного файла, а переменные с %1 по %9 — на соответствующие аргументы, напечатанные в командной строке. Для доступа к переменным больше %9 используется команда shift. Параметр %* ссылается на все аргументы, которые передаются пакетному файлу, за исключением параметра %0.

Например, для копирования содержимого из папки 1 (Folder1) в папку 2 (Folder2), где параметр %1 заменяется на значение Folder1, а параметр %2 — на значение Folder2, например, пакетный файл Mybatch.bat: xcopy %1\*.* %2.

Результат запуска mybatch.bat C:\folder1 D:\folder2 будет таким же, как и при записи в пакетный файл строки: xcopy C:\folder1 \*.* D:\folder2

С пакетными параметрами можно также использовать модификаторы. Модификаторы используют информацию о текущем диске и каталоге как часть или полное имя файла или каталога. Формат модификатора следующий: %~ модификатор.

Ниже описаны модификаторы, используемые для расширения.

Модификатор Описание
%~1 расширение %1 и удаление любых кавычек ("")
%~f1 замена %1 полным путем
%~d1 замена %1 именем диска
%~p1 замена %1 путем
%~n1 замена %1 именем файла
%~x1 замена %1 расширением имени файла
%~s1 замена путем, содержащим только короткие имена
%~a1 Замена %1 атрибутами файла
%~t1 замена %1 датой и временем модификации файла
%~z1 замена %1 размером файла
%~$PATH:1 поиск в каталогах, перечисленных в переменной среды PATH, замена %1 полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.
%~dp1 замена %1 именем диска и путем
%~nx1 замена %1 именем файла и расширением
%~dp$PATH:1 поиск в каталогах, перечисленных в переменной среды PATH, и замена %1 именем диска и путем к первому найденному файлу.
%~ftza1 замена %1 строкой, аналогичной результату работы программы dir

Примечание

  • %1 и PATH в показанных выше примерах можно заменить на другие значения пакетных параметров.

Модификатор %* является уникальным, так как он представляет все аргументы, переданные пакетному файлу. Этот модификатор не используется в комбинации с модификатором %~. Конструкция %~ должна завершаться допустимым номером аргумента.

Нельзя манипулировать пакетными параметрами подобно переменным среды. Нельзя искать и заменять значения или контролировать подстроки. Но переменной среды можно назначить параметр, а потом уже ей манипулировать.

Использование фильтров

Фильтр команды используется с символом перенаправления канала команды (|) и является командой внутри команды, которая считывает ввод команды, преобразовывает ввод, а затем записывает выход. Команды-фильтры дают возможность сортировать, просматривать и отбирать часть выходной информации других команд.

Фильтры делят, переупорядочивают или выделяют отдельные части из проходящей через них информации. В приведенной ниже таблице перечислены команды-фильтры, доступные в Microsoft Windows XP.

Команда Описание
more Отображает содержимое файла или вывода команды в одном окне командной строки за раз.
find Поиск указанных символов в файлах и выходе команды.
sort Сортировка файлов и выхода команды по алфавиту.

Для направления данных из файла на вход фильтра используется символ «меньше» (<). Для направления на вход фильтра выхода другой команды используется канал (|).

Использование команды more

Команда more выводит содержимое файла или выхода команды в одном окне командной строки. Например, чтобы отобразить содержимое файла List.txt в одном окне командной строки:

more < list.txt

Отображается одно окно командной строки со сведениями, а затем в нижней части окна командной строки отображается строка -- More --. Для перехода к следующему окну командной строки, используется любая клавиша на клавиатуре, кроме клавиши PAUSE. Для остановки просмотра применяется комбинация CTRL+C.

Команда more полезна при работе с командами, создающими выход более одного окна командной строки. Например, при выводе дерева каталогов жесткого диска. Если на диске содержится больше каталогов, чем может быть одновременно выведено в окне командной строки, можно использовать команду tree с каналом (|) и команду more.

tree c:\ | more

Использование команды find

Команда find проводит поиск заданной строки или текста в файлах. Команда Cmd.exe отображает каждую строку, которая совпадает со строкой или текстом, указанным в окне коммандной строки. Команда find может быть использована как команда-фильтр и как обычная команда Microsoft Windows XP.

Чтобы использовать команду find в качестве команды-фильтра, необходимо включить символ «меньше» (<) и строку или текст, в котором требуется выполнить поиск. По умолчанию при поиске команда find учитывает регистр. Например, следующая команда будет искать строку "Pacific Rim" в файле Trade.txt:

find "Pacific Rim" < trade.txt

Выход не включает вхождение строки "pacific rim". Встречается вхождение строки "Pacific Rim" с прописными буквами.

Для сохранения результатов работы команды find (вместо отображения их в окне командной строки), надо ввести символ «больше» (>) и имя файла, в котором требуется хранить выход. Например, следующая команда ищет строку "Pacific Rim" в файле Trade.txt с сохранением результата в файле Nwtrade.txt:

find "Pacific Rim" < trade.txt > nwtrade.txt

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...