Команды DOS для работы с файлами

Создание текстовых файлов

Формат команды:
copy con имя-файла

Ctrl+Z, F6 - признак конца файла.
Enter - признак конца строки.

Примеры:
copy con work.txt - создать в текущем каталоге текстовый файл work.txt.

Удаление файлов

Формат команды:
del имя-файла

Примеры:
del *.txt - удалить все файлы с расширением .txt из текущего каталога;
del name.doc - удалить из текущего каталога файл с именем name.doc.

Переименование файлов

Формат команды:
ren имя-файла1 имя-файла2

В параметре имя-файла1можно указывать дисковод и путь, в имя-файла2 - нет.
Команда ren не обрабатывает скрытые файлы.

Примеры:
ren xxx.doc xxx.txt - переименовать файл xxx.doc текущего каталога в xxx.txt;
ren a:*.txt *.doc - переименовать все файлы текущего каталога на диске а: с расширением .txt в файлы с такими же именами и расширениями .doc.

Копирование файлов

Формат команды:
copy имя-файла1 имя-файла2
copy имя файла1 [имя-каталога2]

В именах файлов можно употреблять символы * и ?, а также указывать имя диска и путь.
Команда copy не копирует скрытые файлы и файлы нулевой длины.
Если файл с таким же именем, как у копии, создаваемой командой уже существует, то он замещается.

Примеры:
copy x.txt z.txt - скопировать файл x.txt в текущий каталог с именем z.txt;
copy a:*.* - cкопировать все файлы из корневого каталога диска а: в текущий каталог текущего диска;
copy ext*.txt a:*.doc - скопировать из подкаталога text текущего каталога все файлы с расширением txt в текущий каталог диска а:. Файлы получат расширения doc.

Использование устройств:
copy t1.txt prn - копирование файла t1.txt на принтер;
copy t1.txt con - копирование файла t1.txt на экран монитора.

 

Соединение (конкатенация) файлов

Формат команды:
copy имя-файла [+имя-файла]…[имя файла]

Если имя исходного файла (или одного из файлов) совпадает с именем создаваемого командой copy файла, то существующий файл замещается. Например, если файл all.doc уже существует, то команда copy *.doc all.doc будет ошибочной, т.к. файл all.doc будет уничтожена в начале копирования.

Примеры:
copy .lst+*.ref *.prn - к каждому файлу текущего каталога с расширением lst добавить файл с тем же именем и расширением ref, результат записывается в файл с тем же именем и расширением prn;
copy f1.doc+f2.doc - объединить файлы f1.doc и f2.doc, содержимое объединенного файла записывается в файл f1.doc;
copy *.txt all.prn - содержимое всех файлов с расширением txt записывается в файл all.prn.

 

Перемещение файлов в другой каталог

Формат команды:
move [/y] имя-файла имя-каталога
move [/y] имя-файла [дисковод:][путь]новое-имя-файла

С параметром /y при существовании в каталоге-приемнике файлов с теми же именами, что и пересылаемые, выполняется замещение этих файлов без запроса. Задание нового имени возможно только при пересылке одного файла. Например, команда move *.bac a:*.old ошибочна.

Примеры:
move *.doc d: - переместить файлы с расширением doc из текущего каталога в корневой каталог диска d:;
move f1.txt tmpf2.txt - переместить файл f1.txt в каталог tmp с переименованием в f2.txt.

Сравнение файлов

Формат команды:
fc [параметры] имя-файла имя-файла [имя-файла-протокола]

Если имя файла-протокола не задано, сведения о сравнении выводятся на экран.

Параметры:
/l - построчное сравнение. Если программа обнаруживает различия в файлах, она пытается найти после точки рассогласования места, начиная с которых файлы снова становятся одинаковыми. На выходе - различающиеся строки;
/b - побайтовое сравнение. После обнаружения различия файлов сравнение прекращается.

По умолчанию режим сравнения выбирается по расширению:
/b - .exe, .com, .sys, .obj, .lib, .bin,
/l - остальные.

Параметры построчного сравнения:
/c - игнорировать различия между строчными и прописными буквами;
/n - вывод номеров строк;
/число - сколько строк файлов должно совпадать, чтобы файлы считались снова согласованными. По умолчанию 2 строки;
/lbчисло - размер внутреннего буфера для нахождения соответствий в файлах после рассогласования. По умолчанию 100 строк.

Примеры:
fc doclad.doc doclad1.doc > diff - сравнить файлы, отчет поместить в файл diff.

Вывод файла на экран

Формат команды:
type имя-файла

Примеры:
type t1.doc - вывод на экран файла type t1.doc из текущего каталога.

Команда копирования xcopy

Формат команды:
xcopy имя-файла-или-каталога [имя-файла-или-каталога]…[параметры]

Преимущества команды xcopy:

 работает быстрее, чем copy;

 позволяет копировать файлы из всех подкаталогов указанного каталога;

 позволяет выборочное копирование файлов, в зависимости от значения атрибута «архивировать» или даты файла.

Ограничения команды xcopy:

 не поддерживает копирования с логических устройств или на логические устройства;

 не позволяет объединять файлы;

 копирует файлы всегда целиком, команды copy может прекращать копирование, если в исходном файле встретится символ конца файла.

Параметры:
/s - копирование файлов из указанных каталогов и всех их подкаталогов. Файлы из подкаталогов копируются в соответствующие подкаталоги того каталога, в который копируются файлы;
/e - копирование всех подкаталогов, даже если они пусты. Используется только вместе с режимом /s;

/a - копирование только тех файлов, у которых установлен атрибут "архивировать";
/m - копирование только тех файлов, у которых установлен атрибут "архивировать". После копирования, атрибут "архивировать" отменяется;
/dдата - копирование файлов, созданных или измененных начиная с указанной даты. Если дата не указана, то копируются только файлы, более новые, чем файлы, которые они замещают;
/p - запрос на копирование каждого файла;
/y - перезапись имеющихся файлов с теми же именами без запросов;
/n - проверка правильности копирования каждого файла.

Примеры:
xcopy a: b: /s /e - копирование всех каталогов с диска а: на b:;
xcopy *.doc a: /s - копирование всех файлов с расширением .doc из текущего каталога в корневой каталог диска а:. Файлы с расширением .doc из подкаталогов текущего каталога копируются в одноименные подкаталоги корневого каталога диска а:;
xcopy *.* a: /s /e - копирование всех файлов и подкаталогов текущего каталога в корневой каталог и соответствующие подкаталоги диска а: (создание архивной копии файлов текущего каталога);
xcopy *.* a: /m /s /e - копирование всех измененных файлов и подкаталогов текущего каталога в корневой каталог и соответствующие подкаталоги диска а:, (обновление архивной копии файлов текущего каталога).