суббота, 17 января 2009 г.

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

Как склеить (объединить, собрать) файлы

file.001
file.002
file.003
в один файл file.bin

Для этого можно использовать команду copy:

copy /B file.001 + file.002 + file.003 file.bin

Здесь задается список файлов, которые нужно объединить и имя конечного файла. Можно указать шаблон, по которому будут выбираться файлы для объединения:

copy /B file.* file.bin

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

Как получить список файлов в некоторой папке? Для этого существуют команды dir и tree.

Рассмотрим пример: Получить список файлов в каталоге и подкаталогах D:\data. Сохранить список в файл D:\list.txt. Можно построить дерево файлов и каталогов с помощью команды tree:

tree d:\data /A /F > d:\tree.txt

После ее выполнения файл tree.txt будет содержать примерно следующее:

D:\DATA
+---2006
|   +---июль
|   |       a.txt
|   |       b.jpg
|   |       
|   \---январь
|           t.txt
|           
\---2007
    +---март
    |       hello.txt
    |       
    \---январь
            b.jpg
            c.txt

Ключ /F включает показ файлов. Ключ /A отвечает за рисование линий: если он указан, то лини рисуются из символов ASCII, иначе используется псевдографика.

Команда dir создает простой список файлов.
Пример 1:

dir D:\data /B /S /O:N > D:\list.txt

Результат:

D:\data\2006
D:\data\2007
D:\data\2006\июль
D:\data\2006\январь
D:\data\2006\июль\a.txt
D:\data\2006\июль\b.jpg
D:\data\2006\январь\t.txt
D:\data\2007\март
D:\data\2007\январь
D:\data\2007\март\hello.txt
D:\data\2007\январь\b.jpg
D:\data\2007\январь\c.txt

Пример 2:

dir D:\data /B /S | sort > D:\list.txt

Результат:

D:\data\2006
D:\data\2006\июль
D:\data\2006\июль\a.txt
D:\data\2006\июль\b.jpg
D:\data\2006\январь
D:\data\2006\январь\t.txt
D:\data\2007
D:\data\2007\март
D:\data\2007\март\hello.txt
D:\data\2007\январь
D:\data\2007\январь\b.jpg
D:\data\2007\январь\c.txt

Ключ /S включает вывод файлов из подкаталогов. Ключ /B означает вывод только имен файлов. В первом варианте имена файлов сортируются только в пределах одной папки. Во втором варианте сортируются полные пути.

Кстати, можно заметить, что в первом случае дерево каталогов обходится в ширину, а во втором случае получается обход в глубину.

Файлы list.txt и tree.txt будут в DOS кодировке. Прочитать такой можно в Internet Explorer если выбрать в меню Вид -> Кодировка -> Кириллица (DOS). WordPad тоже умеет читать файлы в DOS кодировке. Чтобы открыть такой файл нужно выбрать в меню Файл -> Открыть и в открывшемся диалоге выбрать Тип файлов: Текстовые документы MS-DOS (*.txt).

См. также:
Справку команд copy, xcopy, dir
Курс Командная строка и сценарии Windows

Комментариев нет:

Отправить комментарий