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

Команда SORTСчитывает входные данные, сортирует их и выводит результат на экран, в файл или на другое устройство. SORT работает как фильтр, считывая символы в заданном столбце и переупорядочивая их в возрастающем или убывающем порядке.

SORT [/R] [/+n] [<] [диск1:][маршрут1]имя_файла1

[> [диск2:][маршрут2]имя_файла2]

[команда |] SORT [/R] [/+n] [> [диск2:][маршрут2]имя_файла2]

Параметр [диск1:][маршрут1]имя_файла1 задает расположение и имя файла, данные которого вы хотите отсортировать. Параметр [диск2:][маршрут2]имя_файла2 задает расположение и имя файла, в который записывается отсортированный вывод. "Команда" формирует данные для сортировки.

Параметр /R задает обратный порядок сортировки, то есть с Z до A и с 9 до 0. /+n сортирует файл по символу в столбце n. Если этот параметр не указывается, файл сортируется по первому столбцу. Например, команда sort /r < volumes.txt сортирует файл VOLUMES.TXT, сортирует его в обратном порядке и выводит на экран.

Если вы не зададите команду или параметр "имя_файла", SORT действует как фильтр, считывая стандартный ввод MS-DOS. Команду SORT можно использовать с символом конвейеризации (|) или перенаправления (< и >). Если информацию нужно выводить поэкранно, можно воспользоваться командой MORE. Перед применением этих средств следует установить в файле AUTOEXEC.BAT переменную TEMP. SORT сортирует данные на основе кода страны и набора символов. Символы, превышающие значение кода ASCII 127 (на русифицированных компьютерах это кириллица), сортируются на основе информации в файле COUNTRY.SYS или альтернативном файле, заданном командой COUNTRY в CONFIG.SYS. Верхний и нижний регистр символов при сортировке не различается. Команда SORT может работать с файлами размером до 64К.

Команда MORE Выводит по одному экрану данных. MORE считывает стандартный ввод из конвейера или перенаправленного файла и выводит единовременно по одному экрану информации. Используется обычно для просмотра длинных файлов.

MORE < [диск:][маршрут]имя_файла

имя_команды | MORE

Параметр [диск:][маршрут]имя_файла задает расположение и имя файла с просматриваемыми на экране данными. Параметр "имя_команды" задает команду, передающую просматриваемые на экране данные.

При использовании символа перенаправления (<) нужно задать в качестве источника имя файла. При указании конвейеризации (|) вы можете использовать такие команды как DIR, SORT и TYPE. (Перед этим установите в AUTOEXEC.BAT переменную TEMP.)

Предположим, вы хотите вывести на экран длинный файл NEWS.DOC. Чтобы пропустить этот вывод через команду MORE, дайте команду more < news.doc или type news.doc | more. MORE выводит первый экран информации и сообщение: More

Для вывода следующего экрана нажмите любую клавишу.

Команда FINDИщет в файле или файлах заданную строку текста. После поиска FIND выводит на экран все строки текста, содержащие заданную строку.

FIND [/V] [/C] [/N] [/I] "строка"

[[диск:][маршрут]имя_файла[...]]

Параметр "строка" (указывается в кавычках) задает группу символов, которую вы хотите найти. Параметр [диск:][маршрут]имя_файла задает расположение и имя файла, в котором будет происходить поиск. Параметр /V выводит все строки, не содержащие заданную строку. Параметр /C выводит только число строк, содержащих заданную строку. /N выводит перед каждой строкой номер строки. /I задает игнорирование регистра символов при поиске (например, "a" и "A" рассматриваются как один символ).

Если опущено имя_файла, то FIND действует как фильтр, воспринимая ввод из стандартного источника MS-DOS (обычно клавиатура, или файл при использовании перенаправления либо конвейеризации).

Если в одной команде заданы параметры /C и /V, то FIND выводит число строк, не содержащих заданную строку.

Приведем примеры. Чтобы вывести все строки файла MUSIC.DAT, содержащие строку "Pink Floyd", наберите команду:

find "Pink Floyd" music.dat

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

for %f in (*.dat) do find "PC Magazine" %f

FIND ищет в файлах .dat строку "PC Magazine".

Перенаправление ввода команд (<)

Для перенаправления ввода команд с цифровой клавиатуры на файл или на устройство используйте оператор «<». Например, для ввода команды sort из файла List.txt введите: sort<file.txt

Содержимое файла File.txt появится в командной строке в виде списка в алфавитном порядке.

Оператор «<» открывает заданное имя файла с доступом только для чтения. Поэтому с его помощью нельзя записывать в файл.

Перенаправление вывода команд (>)

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

Для перенаправления вывода команд из окна командной строки в файл или на устройство применяется оператор «>». Этот оператор используется с большинством команд. Например, для перенаправления вывода команды dir в файл Dirlist.txt введите: dir>dirlist.txt

Если файл Dirlist.txt не существует, интерпретатор команд Cmd.exe создаст его. Если файл существует, Cmd.exe заменит информацию в файле на данные, полученные от команды dir.

Для запуска команды netsh routing dump и последующей отправки результатов ее работы в Route.cfg введите: netsh routing dump>c:\route.cfg

Оператор «>» открывает заданный файл с доступом только для записи. Поэтому с помощью данного оператора файл прочитать нельзя.