|
Фигурнов В.Э. IBM PC для пользователя. Книга содержит подробное и доступное для начинающих описание возмож
Глава 17 Работа с файлами в DOS Напомним, что команды DOS состоят из имени команды и, возможно, пара-
метров, разделенных пробелами. Имя команды и параметры могут набираться
как прописными, так и строчными латинскими буквами. Мы будем отмечать
скобками С и ) необязательные элементы команд.
17. 1. Создание JOKCJOIJU^X файлов Чтобы создать текстовый файл, лучше всего воспользоваться любым редакто-
ром, который может работать с текстовыми файлами, например встроенным
редактором Norton Commander (см. главу 24) или ЛЕКСИКОНОМ (см. главу
31). Небольшие текстовые файлы можно набрать непосредственно с клавиатуры,
хотя это и неудобно. Для этого необходимо ввести команду copy con имя-файла После ввода этой команды нужно будет поочередно вводить строки файла. В
конце каждой строки надо нажимать клавишу (Enter), а после ввода послед-
ней - нажать клавишу (16) и затем (Enter). Команда copy выведет сообщение I file(s) copied
(Один файл скопирован) и на диске появится файл с указанным Вами именем. 17.2. Удаление файлов Для удаления файлов имеется команда del. Формат команды: del имя-файла
В имени файла можно употреблять символы * и ?. Примеры ^^ *-bak удаление всех файлов с расширением .bak из текущего каталога;
del paper.doc- удаление файла paper.doc из текущего каталога. Если Вы захотите удалить все файлы из каталога, например, с помощью ко-
манды del *. *, то DOS спросит Вас:
Are You sure (Y/N) ?
(Вы уверены ? ) Для удаления файлов надо нажать (Y) и (Enter), для отмены команды - И и
(Enter). Запрос Операционная система MS DOS, начиная с версии 6.0, может запрашивать
подтверждения подтверждение удаления каждого файла. Для этого в команде del надо ис-
пользовать режим /р. В этом случае перед удалением каждого файла на экран будет выводиться имя файла и запрос . Вы можете нажать 0
для удаления данного файла или ^Nj для отмены его удаления. Замкчяинс Комиида Del не \'яи.'1я('т ([JaH.'ii.i с атрибутом <только для чтения>. Не удаляют-
ся также (1)а11.'1Ы, у которых нмеегся хотя оы один из атрибутов <скрытый> и <системный>, а
атрибут <арХ111;иронат1>> т' устанондсн. Подробнее об атрибутах файлов рассказано в конце
-)тои мавы. 17.3. Переименование файлов Формат команды:
Параметры Выполнение
команды Примеры m Для переименования файлов имеется команда геп (Rename).
ren имя-фаили1 имя-фамла2 Параметр имя-файла! задает имя (или шаблон имен с символами * и ?) пере-
именовываемых файлов, параметр имя-файла'2 - новое имя (имена) файлов. Переименовываются все файлы из заданного каталога, подходящие под шаб-
лон, заданный в первом имени файла в команде. Если символы * и ? имеются
во втором имени файла в команде, то символы имен файлов на соответствую-
щих позициях не изменяются. геп ххх.dor xxx.txt -- переименование файла xxx.doe в текущем каталоге. Новое имя файла - xxx.txt: ren a:*.doc *.txt - иеренменопание всех файлов с расширением .doc в текущем каталоге на дископоде Л: . Файлы получают расширение .txt . Замечания. 1. В чараметре пмя-фчЧ.1а1 команды можно указывать дисковод и путь, они
.задают, и каком каталоге нереименош.шаются файлы. Если дисковод или путь опущены, то
иодразум-епаются текущий дископод и текущий каталог. А в имени-файла^ указывать дис-
ковод II пуп, нельзя. 2. Команда ren не обрабатынаст файлы с атрибутом <скрытый> (hidden). Подробнее об ат-
рибутах файлов рассказано в конце '-)тои главы. 17.4. Копирование файлов Формат команды Для копирования файлов имеется команда Copy.
copy имя-файла] имя-файла'2 или copy имя-файла] ^имя-каталога2) В именах файлов можно употреблять символы * и ?, а также указывать имя
диска и каталога. Выполнение команды Если в параметре имя-файла! указано имя каталога, то файлы копируются из
этого каталога, иначе - из текущего каталога. Каталог, в который копируют-
ся файлы, можно задать параметром имя-ка.талога2 или указанием каталога
в параметре имя-файла2. Если этот каталог не задан, то файлы копируются в
текущий каталог. Примеры Если во втором параметре команды задано имя файла, то оно указывает новое
имя копируемого файла. Символы * и ? в имени файла во втором параметре
команды указывают, что соответствующие символы в именах копируемых
файлов при копировании не меняются. copy xxx.doe xxx.txt - копирование файла xxx.doe в текущем каталоге: создается файл xxx.txt в текущем каталоге, copy а:\*.* - копирование всех файлов из корневого каталога диска а: в текущий каталог;
copy а:\*.* d: - копирование всех (файлов из корневого каталога диска а: в текущий ката-
лог диска D:, copy \t\*.doc с:*.txt - копирование всех файлов с. расширением .doc из каталога \t теку-
щего диска в текущий каталог диска с:. Файлы получают расширение .txt . Формат команды ном экземпляре. Для уменьшения вероятности подобных неприятностей целе-
сообразно предварительно проверять считываемость файлов. Это можно сде-
лать с помощью команды Copy, копируя файлы на <пустое> устройство nul. copy /b имя-файла nul
В имени файла можно употреблять символы * и ?. Примеры - ^°РУ /Ь а:\*-* "ul - проверка считываемости всех файлов в корневом каталоге диска А:,
; copy /b b.'paper.txt nul - проверка считываемости файла paper.txt из текущего каталога
1 диска В:. Замечания. 1. Для проверки считываемости всей дискеты можно использовать программу
NDD (Norton Disk Doctor) из комплекса Norton Utilities. Например, для проверки дискеты в
дисководе А: надо ввести команду NDD A: /DT . Подробнее о программе NDD см. в главе 35. 2. Как уже говорилось, команда copy не обрабатывает файлы с атрибутом <скрытый>
(hidden). Подробнее об атрибутах файлов рассказано в конце этой главы. 17.7. Перемещение файлов в другой каталог Формат команды Примеры Для перемещения файлов в другой каталог можно использовать программу
Move. Эта программа входит в MS DOS, начиная с версии 6.0. Программа
Move также умеет переименовывать файлы. move C/Y) имя-файла имя-каталога Здесь в имени-файла можно использовать символы * и ? (для перемещения в
другой каталог нескольких файлов). При перемещении одного файла в другой
каталог возможно переименование этого файла. Формат команды: move C/Y) имя-файла ^дисковод^^путь^новое-имя-файла Если при перемещении файла в каталоге-получателе уже имеется файл с та-
ким именем, программа Move выдает запрос о разрешении перезаписи файла.
При наличии параметра /Y перезапись файлов выполняется без каких-либо
запросов. move *.doc d: - пересылка файлов с расширением .doc в текущем каталоге в текущий
каталог диска D:; move /у *.doc arc - пересылка файлов с расширением .doc в текущем каталоге в подка-
талог ARC (этот подкаталог должен существовать). Существовавшие в подкаталоге
ARC файлы с тем же именем, что и пересылаемые файлы, замещаются без каких-либо
запросов. move thesis.bak a:\thesis.old - пересылка файла thesis, bak в корневой каталог диска А: с переименованием этого файла в thesis.old ; move *.bak a:\*.old - а эта команда будет отвергнута как ошибочная. Задание нового
имени возможно только при пересылке одного файла. 17.8. Поиск файлов на диске Поиск файла
по имени Для поиска файлов на диске по имени файла и/или по содержащейся в файле
строке символов можно использовать программу FileFind из комплекса Norton
Utilities. Формат вызова программы: filefind имя-файла ^строка-символов") {режимы)
В имени файла можно употреблять символы * и ?. Если в имени файла нет указания на то, в каком каталоге этот файл находит-
ся, поиск производится во всех каталогах на диске. Если задать режим /С, то
поиск будет вестись только в текущем каталоге. А при указании режимов /С
и /S поиск файла будет идти в текущем каталоге и всех его подкаталогах. Если же каталог в имени файла задан, поиск производится только в этом ка-
талоге. Если указать режим /S, то поиск будет вестись и в подкаталогах ука-
занного каталога. Поиск на всех дисках Программа FileFind позволяет вести поиск файла на всех дисках компьютера.
Для этого в имени файла вместо буквы, задающей имя диска, надо поставить
символ <*>, например, *:*.* - поиск во всех файлах на всех дисках. Поиск стооки Если в командной строке задан параметр строка-символов, то программа
FileFind ищет файлы, имя которых соответствует тому, что задано в параметре
имя-файла (см. выше), и которые содержат заданную строку символов. Если
при поиске необходимо учитывать различие между прописными и строчными
буквами, в команде надо указать параметр /CS (по умолчанию различия меж-
ду этими буквами при поиске не делается). Если строка символов содержит
пробелы, ее следует заключить в кавычки <">, а если она содержит кавычки
- в апострофы <'>. Если же эта строка не содержит ни пробелов, ни кавычек,
она может быть задана в командной строке непосредственно. Замечание. Для правильного поиска строк, содержащих русские буквы, необходима уста-
новка параметров страны в файле CONFIG.SYS. Так, если файл COUNTRY.SYS находится
в каталоге C:\EXE\MSDOS. то в файле CONFIG.SYS должна быть строка COUNTRY = 007,
866, C:\EXE\MSDOS\COUNTRY.SYS. Поимеоы i filefind digger.* - найти все файлы с именем digger и произвольным расширением,
I tilefind *:f"^doc - найти все файлы с именем, начинающимся с буквы t и расширением
I .DOC на всех дисках компьютера. ^ filefind *.doc "Иванов" /с - найти все файлы в текущем каталоге с расширением .DOC,
::: содержащие строку символов <Иванов> (в любом регистре букв).
I filefind *.doc "Иванов" /s /с /sc - найти все файлы с расширением .DOC в текущем
1 каталоге и всех его подкаталогах, содержащие строку символов <Иванов> (именно с
1 таким сочетанием прописных и строчных букв). Поиск (Ьайлов После того как Вы введете команду, программа FileFind начнет поиск задан-
ных файлов. Имена найденных файлов будут изображаться в окне в правом
нижнем углу экрана. Кроме имени файла, там будут указаны размер файла,
дата и время создания или последней модификации файла. А в режиме поиска
строки символов в самой правой колонке этого окна для каждого файла будет
выводиться количество вхождений искомой строки в файл (рис. 17.1).
Если файлов, удовлетворяющих условию поиска, не найдено, на экран выда-
ется сообщение: No files found matching <имя-файла> containing <строка-символов>
(Нет файлов вида ..., содержащих строку ...) и Вы можете выйти из программы, нажав клавишу (Tsc^. Если программа FileFind нашла файлы, удовлетворяющие условию поиска, Вы
можете (даже если поиск еще не закончен) выделить клавишами Q и CD в
списке интересующий файл и, нажав клавишу (Enter), просмотреть его. Поосмото найденных ^Р" просмотре можно пользоваться клавишами CD, CD, (PgUp], (PgDn) для лис-
^ - тания файла вверх и вниз, (Ноте) для перехода к началу файла, (End) для пере-
" хода к концу файла, Q, Q, (Ctrl](^) и (Ctrl](^) для перемещения вправо и
влево по строкам файла. Кроме того, Вы можете воспользоваться следующими
клавишами: Действия со списком
найденных файлов Выход из программы Новый поиск для выхода в основное окно программы;
для просмотра предыдущего найденного файла;
для просмотра следующего файла. Если Вы задали в команде параметр строка-символов, то при просмотре най-
денных файлов можно использовать также и следующие клавиши: (F5) - для перехода к предыдущему вхождению искомой строки;
Сб0 - для перехода к следующему вхождению искомой строки. При этом программа отображает найденные строки символов инверсным цве-
том. Программа FileFind позволяет не только просматривать найденные файлы.
Когда на экране выведен список найденных файлов, Вы можете: вывести список найденных файлов на принтер или в файл. Для этого надо
нажать [Ctrl)(T) и заполнить параметры выведенного программой запроса; вывести список найденных файлов в виде командного файла. Для этого
надо нажать (Ctrl)(B^ и заполнить параметры выведенного программой за-
проса. Программа FileFind позволяет указать текст, который надо помес-
тить до и после имен файлов, а также до имен каталогов; установить атрибуты (<только для чтения>, <системный>, <спрятанный>,
<архивировать>) у одного файла или у всех найденных файлов. Для этого
надо нажать САГЕ^ГС] (А) и заполнить параметры выведенного программой
запроса; установить дату и/или время у одного файла или у всех найденных фай-
лов. Для этого надо нажать (А]Т)(Т) (^) и заполнить параметры выведенно-
го программой запроса; установить режимы вывода информации о найденных файлах. Для этого
надо нажать (Ctrl)(T) и заполнить параметры выведенного программой за-
проса. Вы можете выйти из программы FileFind: с переходом в каталог, содержащий найденный файл. Для этого надо выде-
лить этот файл в списке, клавишей (Jab) выделить надпись и на-
жать (Enter); ____ без перехода в другой каталог. Для этого следует нажать [ESC). Вы можете запустить новый поиск, не выходя из программы FileFind. Для это-
го следует заполнить поля выведенного на экран запроса. Перемещение меж-
ду полями осуществляется клавишей (Tab). В поле File Name надо указать
имя искомого файла (параметр имя-файла), в поле Containing - искомую
строку символов (не заключая ее в кавычки или апострофы), выбрать клави-
шей (Пробел ) режим поиска (на всем диске - Entire disk, в текущем каталоге Глава 17. Работа с файлами в DOS Дополнительные
условия поиска и его подкаталогах Ч Current directory and below, только в текущем каталоге
Ч Current directory only) и указать режим поиска строки символов Ч без
учета регистра букв (в поле Ignore case запроса стоит крестик) или с учетом
регистра букв Изменение режима поиска строки также осуществляется кла-
вишей (Пробел). После этого надо клавишей (JabJ выделить надпись Start и
нажать (Enter). При нажатии клавиши (ТТ) в программе FileFind на экран выводится запрос, в
котором можно задать дополнительные условия поиска. Так, можно задать
условия на размер, дату создания и атрибуты искомых файлов. Замечания. 1. Программа FileFind позволяет заменять в файлах искомую строку символов
другой строкой символов. Для этого в команде после искомой строки символов надо указать
заменяющую строку символов. 2. Программа FileFind позволяет задавать искомую строку символов (а при поиске с заме-
ной Ч также и заменяющую строку символов) в шестнадцатеричном виде. Для этого в диа-
логовом режиме программы надо нажать клавишу [f3). 3. Аналогичные возможности поиска (хотя и несколько менее мощные) имеет программа
Norton Commander (см. главу 24). 4. В Norton Desktop 3.0 имеется аналогичная программе FileFind программа SuperFind, она
обладает практически теми же возможностями, но предназначена для использования в сре-
де Windows (см. главу 48). А в Windows 95 функция поиска файлов встроена в оболочку
Windows 95 Ч программу Explorer (Проводник). Впрочем, в Norton nie Manager для
Windows 95 (это часть комплекса Norton Navigator) имеются еще более мощные средства
поиска файлов. с^ При первом чтении Вы можете остаток главы пропустить
или просмотреть "по диагонали". [1] 17'.9. Сравнение файлов Иногда требуется сравнить файлы для проверки их идентичности или нахож-
дения различий. Для сравнения файлов в составе DOS имеется программа FC. Формат команды fc ^параметры^ имя-файла имя-файла ^>имя-файла-протокола") В именах сравниваемых файлов можно употреблять символы * и ?. Если имя
файла протокола не задано, то сведения о различиях сравниваемых файлов
выводятся на экран. Построчное и
побайтовое
сравнение Сравнение файлов программой FC может производиться двумя способами. 1. Сравнение текстовых файлов, или построчное сравнение. При этом спосо-
бе, если программа FC обнаруживает различие в файлах, она пытается
найти после точки рассогласования такие места в этих файлах, начиная с
которых они вновь становятся одинаковыми. На выход программа FC выда-
ет различающиеся строки файлов. 2. Сравнение других (двоичных) файлов, или побайтовое сравнение. При
этом способе программа FC после обнаружения различия файлов не делает
никаких попыток найти в файлах место, начиная с которого файлы снова
становятся одинаковыми. На выход программа FC выдает различающиеся
байты в файлах. Для задания режима сравнения Вы можете указать один из следующих пара-
метров: /L Ч режим построчного сравнения файлов;
/В Ч режим побайтового сравнения файлов. Часть 4. Основы работы в среде MS DOS 11,Ч).1М('ЦЧ,1111)4
I IW: 1 1)0' том
српиисипи (/>,'" i/i oi < Примеры Резу/1Ы.Ч1,1
побайго1юго
сраннения Рсзулып 1ы
построчного
срувнония По умолчанию, если пользователь не указал режим сравнения файлов (то есть
параметр /L или /В), то режим сравнения выбирается по расширению имени
первого из сравниваемых файлов. Если это расширение Ч .ЕХЕ, .СОМ, .SYS,
.OBJ, .LIB или .BIN, используется побайтовый способ сравнения, иначе Ч по-
строчный способ сравнения. В построчном режиме сравнения можно задать дополнительные параметры: /С Ч при сравнении игнорируется различие между прописными и строчными буквами;
/N Ч вывод номеров строк при построчном сравнении файлов; /Т Ч знаки табуляции не рассматриваются как пробелы. Если этот режим не указан,
то при построчном сравнении файлов каждый знак табуляции рассматривается
как число пробелов, большее нуля, которое необходимо для того, чтобы следую-
щий текст начинался с позиции, номер которой кратен восьми: /W Ч подряд идущие пробелы и знаки табуляции рассматриваются как один пробел, а
пробелы и знаки табуляции в начале и в конце строк при сравнении игнори-
руются: /А Ч сокращенная форма отчета о результатах сравнения файлов: вместо выдачи раз-
личающихся кусков текста полностью выводятся только первые и последние их
строки, промежуточные строки обозначаются многоточием: /Уочисло Ч установка размера внутреннего буфера для нахождения соответствий в
текстовых файлах после их рассогласования. По умолчанию размер буфера Ч
100 строк: /число Ч устанавливает, сколько строк файлов подряд должно совпадать для того,
чтобы файлы считались снова согласованными. По умолчанию этот параметр ра-
вен 2. fc а:*.* *.* /Lb500 /4 Ч сравнение всех файлов из текущего каталога диска А: с одно-
именными файлами из текущего каталога. Размер внутреннего буфера программы FC
Ч 500 строк. Файлы будут считаться согласованными, если совпадают подряд 4 стро-
ки; fc doclad.doc docladl.doc > diff Ч сравнение файлов doclad.doc и docladl.doc. Отчет о различиях помещается в файл diff. При побайтовом сравнении файлов отчет о различиях файлов состоит из
строк вида nnnnnn хх уу, где nnnnnn Ч относительный номер байта в файлах
(нумерация начинается с нуля): хх Ч байт первого файла; уу Ч байт второго
файла (в шестнадцатеричном виде). Если один из сравниваемых файлов длиннее другого, то в конце выдается со-
общение ЕС: имя-файла longer then имя-файла
(ЕС: имя-файла длиннее, чем имя-файла) При построчном сравнении файлов сведения о различиях файлов выводятся в
следующем виде: ***** имя-первого-файла Последняя совпадающая строка первого и второго файлов.
Строки первого файла, которых нет во втором файле.
Следующая совпадающая строка первого и второго файлов.
***** имя-второго-файла Последняя совпадающая строка первого и второго файлов.
Строки второго файла, которых нет в первом файле.
Следующая совпадающая строка первого и второго файлов.
Пустая строка. Если после обнаружения различий программа FC не может снова найти сов-
падающих строк в файлах, то выводится сообщение Resynch failed. Files are too different
Х(Ресинхронизация не удалась: файлы слишком различны) Если Вы не удовлетворены этим сообщением, то можете попробовать увели-
чить значение параметра /Lb для того, чтобы программа FC могла более ус-
пешно находить соответствия в файлах.
|
|
|