Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
 cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Chaki_Black
Member

Откуда: Ukraine, Kharkov
Сообщений: 200
Добрый день.
Дано: есть много файлов (600 шт.) по 1,5 Гб. Необходимо склеить их так, чтобы не копировать в новый файл. Суммарно, файлы весят 900 Гб. Винт - 1,5 Тб. При склеивании скопировать все в новый файл - не выйдет. Необходимо склеить файлы так (можно в несколько заходов), чтобы все время наращивался 1 файл, а куски можно было постепенно удалять после частичного склеивания).
Файлы:
file.001
file.002
file.003
file.004
file.005
...
file.600

Если сделать так (cmd):
copy /b file.* file 001
в принципе частично решает проблему, файл file.001 сначала копируется сам в себя, а потом добавляет к нему все остальные файлы.
Проблема заключается в том, что когда при последующих разах файл вырастет до размера, например, 400 Гб, то при склеивании файлов:
file.300 (400 000 Гб)
file.301 (1,5 Гб)
file.302 (1,5 Гб)
file.303 (1,5 Гб)
file.304 (1,5 Гб)
....
Файл file.300 будет копироваться в самого себя кучу времени, а только потом склеиваться с остальными.
Можно ли как-нибудь пропустить операцию копирования файла в самого в себя (file.300 (400 000 Гб)) и сразу к файлу file.300 клеить остальные файлы, что поменьше?
10 сен 12, 11:36    [13138988]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Ха-Ха Ха-Ха
Member

Откуда:
Сообщений: 202
Может быть, замутить что-то со стандартными потоками ввода-вывода и их перенаправлением в файл ?

Posted via ActualForum NNTP Server 1.5

10 сен 12, 12:30    [13139422]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Chaki_Black
Member

Откуда: Ukraine, Kharkov
Сообщений: 200
Проблема решилась…
Есть в Windows такая команда, которую я случайно нашел в книге Windows Forensic Analysis Dvd Toolkit 2E (2009) by Harlan Harvey на стр. 448:
D:\Images>type image.001 >   image_all.img
D:\Images>type image.002 >> image_all.img
D:\Images>type image.002 >> image_all.img
Думаю не сложно догадаться, что если у меня есть файл на 300 Гб, и мне нужно к нему приклеить еще 50 по 1,5 Гб, то мне нужно сделать:

D:\Images>type image.200 >> image_all.img
D:\Images>type image.201 >> image_all.img
D:\Images>type image.202 >> image_all.img
D:\Images>type image.203 >> image_all.img
….
D:\Images>type image.498 >> image_all.img
D:\Images>type image.499 >> image_all.img
Или, лучше:
D:\Images>type image.* >> image_all.img
что по очереди склерит все файлы в папке к файлу image_all.img
13 сен 12, 17:46    [13160025]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6901
Как ни странно, это команды консоли, и они имелись уже во времена DOS, а пришли из *nix...
13 сен 12, 19:13    [13160580]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Ха-Ха Ха-Ха
Member

Откуда:
Сообщений: 202
Chaki_Black пишет:

> Проблема решилась…
> D:\Images>type image.* >> image_all.img

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

Posted via ActualForum NNTP Server 1.5

14 сен 12, 10:10    [13162387]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20775
То, что при
copy /b file.001+file.002

выполняется "сначала копирование файла file.001, с последующей конкатенацией к нему файла file.002" - это бред и ерунда. Копирование первого файла не делается, к нему сразу конкатенируются остальные файлы.

Т.е. для ЭФФЕКТИВНОГО выполнения задачи надо просто НЕ УКАЗЫВАТЬ файл назначения. Однако это не позволит использовать маску в первой группе. Что легко решается изменением имени результирующего файла на такое, которе не подходит под маску.

Т.е.
copy /b file.*

недопустимо, а вот
copy /b total.000+file.*

есть правильное решение.
14 сен 12, 11:03    [13162860]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10776
Akina
недопустимо, а вот
copy /b total.000+file.*
есть правильное решение.
... которому не хватит места.
14 сен 12, 16:28    [13166176]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20775
Ну проблема обеспечения места несколько выходит за рамки этой темы... опять же никто не мешает
copy /b x:\backup\total.000+y:\data\file.*
14 сен 12, 17:00    [13166373]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10776
Akina
Ну проблема обеспечения места несколько выходит за рамки этой темы...
Хренассе ...
Существенное условие задачи выходит за её рамки ...
И вообще - дались вам эти звёздочки: идея-то верная, просто "подклеенный" файл надо удалить перед обработкой следующего.
14 сен 12, 18:07    [13166941]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20775
Basil A. Sidorov
Akina
Ну проблема обеспечения места несколько выходит за рамки этой темы...
Хренассе ...
Существенное условие задачи выходит за её рамки ...
И вообще - дались вам эти звёздочки: идея-то верная, просто "подклеенный" файл надо удалить перед обработкой следующего.

Вы невнимательно читали условие задачи.
Проблемы с местом - нет. Есть проблема лишнего, ненужного для решения задачи, копирования - т.е. лишнее время на выполнение операции.
16 сен 12, 22:47    [13173050]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
AndreTM
Member

Откуда: Где-то в вологодских лесах...
Сообщений: 6901
Chaki_Black
Добрый день.
Дано: есть много файлов (600 шт.) по 1,5 Гб. Необходимо склеить их так, чтобы не копировать в новый файл. Суммарно, файлы весят 900 Гб. Винт - 1,5 Тб. При склеивании скопировать все в новый файл - не выйдет...
Akina
Вы невнимательно читали условие задачи.
Проблемы с местом - нет. Есть проблема лишнего, ненужного для решения задачи, копирования
?
17 сен 12, 00:49    [13173422]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20775
AndreTM
?

В заявленных цифрах объёмов информации и накопителя, если первый файл 300 Гб или больше - моё решение устраняет эту проблему. Если меньше - то только порционное слияние в несколько этапов, что одной командой не реализуется, но эту часть - недостаток места,- топикстартер видит, и решения ЭТОЙ части проблемы НЕ ПРОСИТ. Она не составляет сути вопроса. ТС просит совета именно по устранению дублирования на диске при копировании первого файла.

Отделяйте зёрна от плевел, да?
17 сен 12, 08:50    [13173814]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Ха-Ха Ха-Ха
Member

Откуда:
Сообщений: 202
Akina пишет:

> copy /b x:\backup\total.000+y:\data\file.*

Интересно, ТС-у важен порядок "подливки" файлов "file.*" ? И гарантирует ли copy "подливку" файлов в каком-либо однозначном порядке ?

Posted via ActualForum NNTP Server 1.5

17 сен 12, 15:08    [13176434]     Ответить | Цитировать Сообщить модератору
 Re: cmd: copy /b file.001 + file.002 + file.003 file.001  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20775
Ха-Ха Ха-Ха
гарантирует ли copy "подливку" файлов в каком-либо однозначном порядке ?
Файлы будут "подливаться" в том порядке, в каком их отдаёт файловый реквестор. Для локального NTFS-тома это в алфавитном порядке, для FAT-тома - в том порядке, в каком идут записи файлов в каталоге.

Если же требуется строго определённый порядок - придётся выполнять конкатенацию по одному файлу:

copy /b x:\backup\total.000+y:\data\file.123
copy /b x:\backup\total.000+y:\data\file.135
copy /b x:\backup\total.000+y:\data\file.129
...
17 сен 12, 15:36    [13176731]     Ответить | Цитировать Сообщить модератору
Все форумы / Windows Ответить