Цикл довузовской подготовки кафедры ЭФУ

1.3. Работа с текстовыми файлами в Cmd.exe

После построения дерева каталогов (Рис. 1.5) перейдем к рассмотрению способов создания и редактирования простых текстовых файлов (Таблица 1.2).

Для пользователей Windows самым очевидным инструментом такой работы является приложение «Блокнот» (Notepad), запускаемое в русском варианте графического интерфейса Windows как:

Пуск > Все программы > Стандартные > Блокнот

или в англоязычном интерфейсе:

Start > All Programs > Accessories > Notepad

Для корректного отображения текста фалов, созданных в текстовом редакторе Notepad, необходимо установить для командной строки кодовую страницу 1251 (Для каждого национального алфавита используется своя, так называемая, кодовая страница. необходимая для корректного отображения национальных шрифтов) и выбрать для отображения текста один из True Type шрифтов: Consolas или Lucida Console (выбор шрифтов подробно рассмотрен в следующем параграфе – § 2.2 «Настройка параметров командной строки»). Для просмотра текущей кодовой страницы, в данный момент используемой командным интерпретатором и для ее изменения, служит команда CHCP (Пример 2.4).

Приложение «Блокнот» может быть запущено и из командной строки (Пример 1.18). В данном примере создается текстовый файл papa1.txt (Рис. 1.5) с использованием абсолютного пути, включающего имя директории и имя файла.


Пример 1.18. Вывод текстового файла на экран

d:\WINLAB>tree papa
D:\WINLAB\PAPA
├───incredible
└───math
    ├───strong
    └───study
d:\WINLAB>notepad papa\math\strong\papa1.txt
d:\WINLAB>
		

После подтверждения запроса на создание файла и набора соответствующего текста (Рис. 1.6), необходимо сохранить и закрыть файла (Файл > Сохранить), после чего убедиться в существовании файла командами DIR или TREE.

Рис. 1.6. Текстовый файл в редакторе Notepad.

Для просмотра существующих текстовых файлов из командной строки применяются команды TYPE или MORE (Пример 1.19).


Пример 1.19. Вывод текстового файла на экран

d:\WINLAB>type papa\math\strong\papa1.txt
Папа у Васи силен в математике,
d:\WINLAB>cd papa\math\strong
d:\WINLAB\papa\math\strong>more papa1.txt
Папа у Васи силен в математике,
d:\WINLAB\papa\math\strong>
		

При просмотре текстовых файлов, можно использовать абсолютные и относительные пути к ним из текущей директории. Если с помощью команды CD сделать текущей директорию, в которой находится просматриваемый файл, то команде TYPE или MORE достаточно указать в качестве параметра только имя файла.

Команда TYPE осуществляет вывод содержимого одного или нескольких текстовых файлов в формате:

TYPE [диск:][путь]имя_файла


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

MORE /E [/C] [/P] [/S] [/Tn] [+n] [файлы]

/E – Разрешение использования дополнительных возможностей.

/C – Очистка экрана перед выводом каждой страницы.

/P – Учет символов перевода страницы.

/S – Сжатие нескольких пустых строк в одну строку.

/Tn –Замена табуляции n пробелами (по умолчанию n = 8).

+n – Начало вывода первого файла со строки с номером n.


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

P n – Вывод следующих n строк.

S n – Пропуск следующих n строк.

F – Вывод следующего файла.

Q – Завершение работы.

= – Вывод номера строки.

? – Вывод строки подсказки.

<пробел> – Вывод следующей страницы.

– Вывод следующей строки.


Помимо текстового редактора Notepad, являющегося неотъемлемой частью стандартного набора приложений Windows, командная строка позволяет создавать и редактировать текстовые файлы при помощи утилиты Edit – текстового редактора унаследованного еще от MS DOS. Меню (допускающее управление мышью) и команды (сочетания клавиш) этого редактора практически аналогичны Notepad – и в этом нет ничего удивительного, поскольку Notepad является прямым наследником Edit. В рамках данного лабораторного практикума использование этой весьма полезной утилиты осложняют проблемы с русификацией.

Для создания текстовых файлов непосредственно в командной строке можно использовать копирование текста (§ 1.4) со стандартной консоли (клавиатуры), а также перенаправление стандартного ввода/вывода команд в текстовый файл (§ 2.3).

Если в командной строке Windows набрать и подтвердить путь к текстовому файлу (с расширением «.txt»), то это приведет к открытию текстового файла в редакторе Notepad – поскольку txt-файлы, по умолчанию, ассоциированы с этим приложением Windows.

Удаление одного или нескольких файлов в командной строке Windows осуществляется равноценными по действию командами DEL и ERASE (Пример 1.20). Для реализации примера необходимо создать в Notepad текстовый файл (скажем, ERROR.TXT) и размесить его в своем рабочем каталоге (в примерах практикума – это каталог D:\WINLAB).


Пример 1.20. Удаление файла (не обязательно текстового)

d:\WINLAB>dir /b
error.txt
papa
d:\WINLAB>erase error.txt
d:\WINLAB>dir /b
papa
d:\WINLAB>
		

В общем случае команды DEL и ERASE имеют нижеследующий формат (далее по тексту формата: «имена» – список из одного или нескольких файлов или каталогов, если указан каталог, будут удалены все файлы в этом каталоге):

DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена

ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена

/P – Запрос подтверждения перед удалением каждого файла.

/F – Принудительное удаление файлов, только для чтения.

/S – Удаление указанных файлов из всех подкаталогов.

/Q – Отключение запроса на подтверждение удаления файлов.

/A – Отбор файлов для удаления по атрибутам:

    R – Файлы, доступные только для чтения;

    S – Системные файлы; H – Скрытые файлы;

    A – Файлы, готовые для архивирования;

    I – Файлы с неиндексированным содержимым;

    L – Точки повторной обработки;

    Префикс «-» имеет значение НЕ.

При включении расширенной обработки команд DEL и ERASE результаты вывода для ключа /S принимают обратный характер, то есть выводятся только имена удаленных файлов, а не файлов, которые не удалось найти.