last day (16 days later) » 

9:29 AM
0
Q: Объединить бинарные файлы с помощью JavaScript (node.js)

QwertiyВ файле join.txt по одному на строке заданы имена файлов, которые надо объединить в порядке следования. Хочу это сделать в консоли. Попытался сделать так (в командной строке, не в батнике): for /f "tokens=*" %f in (join.txt) do type "%f" >>result.bin но в одном из случаев где-то потерялся бай...

 
MBo
А copy /b вместо type в данном случае не подойдёт?
 
MAX
Вроде бы для этого copy с параметром /b нужно использовать: celitel.info/klad/nhelp/helpbat.php?dcmd=copy
 
@MBo, не очень уверен, как 700 имён из файла упихать в команду copy через плюс. Насколько я помню, максимальная длина команды ограничена в Windows?
@MAX ^^ (+8 символов)
 
А почему это не сделать внутри виртуалки с линуксом?
 
@donRumata, я уже сделал скриптом на nodejs. Зачем мне целую виртуалку ставить для этого?? о_О
 
9:29 AM
Ну для работы с файлами в unix есть куча прог из-за изначальной идеологии. Я бы для таких задач взял бы инструмент, который изначально на это заточен
 
@donRumata, целая операционка для для такой простой задачи - это какой-то излишне жирный "инструмент" - не кажется?
 
Ну если только для неё - то конечно да.
 
@donRumata, кстати, в десятке же есть линуксовая подсистема - а что если через неё? Команду не подскажешь?
 
cat file1 file2 file3 > file-end-version По идее так. На счёт бинарных файлов и их заголовков - хз, не уверен, но текстовые склеивает точно.
 
@donRumata так у меня список файлов же в файле
и их там полно
 
9:29 AM
Ща, посмотрю /0, абажди.
Аааа, ну тогда

for i in $(< join.txt)
do
cat "$i" >> file-end-version
done

Как-то так должно быть.
 
@donRumata сейчас попробую
только мне надо снова нужный файл порезать)
@donRumata кстати, переводы строк важны? есть вариант с линуксовыми, а есть с виндовыми
 
@Qwertiy, ну и как ты понимаешь - скрипт надо запускать из той же папки, где и join.txt.
 
в файле со списком файлов
 
@Qwertiy проблем вознинкнуть не должно
 
@donRumata да, это понимаю
@donRumata его можно в одну строчку в консоли написать? и если имя join.txt с пробелами, то в кавычки его (а то у винды с for'ом в этом месте грабли)
 
9:37 AM
@Qwertiy Да, должно проканать, я $i не просто так взял в кавычки. Как раз на это и расчитано.
 
@donRumata я пор вот это место: for i in $(< "join.txt")
а то винда с своём for'е без кавычек считает за имя файла, а в кавычках - как строку символов
 
@Qwertiy не, важны кавычки в "$i".
 
я долго думал, чего там нифига не получается))
 
Если не проканает - кинь пару файлов через гуглдрайв, я поковыряюсь на досуге.
 
$ for i in $(< join.txt) do cat "$i" >> result.mov done
-bash: syntax error near unexpected token `>>'
@donRumata в одну строку не ест
$ for i in $(< "MVI_0710 - part - [names].AVI [2018_07_14T20_10_17_780Z] [0.0.0.0].txt")
> do
>   cat "$i" >> result.mov
> done
cat: MVI_0710: No such file or directory
cat: '[0': No such file or directory
@donRumata что-то не то...
имена файлов вот такие:
MVI_0710 [0 - 1048576].AVI [2018_07_14T19_47_06_705Z] [0.0.0.0].bin
(ip-адрес изменён)
@donRumata
 
9:44 AM
@Qwertiy наверное я где-то натупил. Вслепую не скажу, кинь архив, сегодня\завтра ковырну и если получится - кину скрипт
 
сейчас сделаю
мне кажется, дело в квадратных скобках и пробелах в именах
@donRumata qwertiy.redirectme.net:5157 - скажи, когда скачаешь
 
10:05 AM
@donRumata, а зачем ты заголовок поменял? я вроде метку добавил, а через командную строку сделать по-прежнему не против
 
 
5 hours later…
3:19 PM
@Qwertiy, "Попытка соединения не удалась"
@Qwertiy ну чтобы гугл и яндекс корретнее искали.
 
 
4 hours later…
7:13 PM
@donRumata угу, я уже комп выключил
если ты тут, сейчас запущу
 
@Qwertiy Да, тут
 
@donRumata должно работать
@donRumata у тебя 45й лис на убунту?
 
@Qwertiy да
 
@donRumata а чего такой старый?
 
@Qwertiy и щас ещё aria2 должна увидеться
@Qwertiy Scrapbook
 
7:19 PM
@donRumata ага, а что это такое?
@donRumata тоже не в курсе
 
@Qwertiy Это я на работу копию качаю, чтобы завтра продолжить, если за сегодня не успею.
Scrapbook — расширение Firefox, позволяющее сохранять веб-страницы для просмотра офлайн в виде древовидной базы данных. 2017-12-06 На данный момент не поддерживается Mozilla Firefox версии 57 и выше. == ScrapBookQ == ScrapbookQ захватывает веб-страницу в локальном хранилище и управляет захваченными страницами на боковой панели браузера. == Возможности программы == Захват веб-страниц, включая картинки, стили, мультимедиа, архивы, JavaScript, задание параметров захвата по умолчанию. Захват нескольких вкладок, захват нескольких URL. Многоуровневый захват веб-страниц — захват также стран...
Aria2 — свободная кроссплатформенная консольная программа для загрузки файлов по сети. Поддерживаемые протоколы: HTTP, HTTPS, FTP, BitTorrent и Metalink. Автор программы — Тацухиро Цудзикава (Tatsuhiro Tsujikawa), распространяет её под лицензией GPLv2. Отличается от такого консольного менеджера закачек, как wget, не только поддержкой BitTorrent, но и способностью многоканального получения запрошенного файла из различных источников, в том числе по протоколам HTTP, HTTPS, FTP и BitTorrent одновременно. Используя контрольные суммы блока данных для Metalink, aria2 автоматически проверяет части данных…
 
@donRumata прикольная штука
впрочем, один архив можно и без неё скачать)
 
@Qwertiy ну синтаксис самый обычный: aria2c url
 
@donRumata хм.. менеджер закачек
@donRumata я про скрэпбук говорил
 
@Qwertiy А. Ну ок страницы сохраняет. Очень клёвая штука.
 
7:26 PM
@donRumata ага, согласен
 
7:43 PM
@Qwertiy, а строка "VirtualBox-5.2.12-122591-Win [7340032 - 8388608].exe [2018_07_15T09_45_53_152Z] [12.345.67.890].bin" - всегда будет такой? Ну я имею ввиду формат
 
@donRumata более-менее да
возможно, я .exe отправлю как-нибудь в конец, чтобы было .exe.bin
а на что это влияет?
у join.txt тоже примерно такой формат
 
@Qwertiy я ща просто пытаюсь решить задачу "в лоб" и заэкранировать квадратные скобки.
 
@donRumata там судя по сообщению с пробелом проблемы, а не со скобками?
@donRumata что, зря я люблю квадратные скобки в именах использовать?)))
@donRumata то, что в квадратных скобках, может добавляться к произвольному имени
 
@Qwertiy я у себя ничего кроме a-z, 0-9 и дефиса вообще не юзаю. Тем более никаких пробелов, скобок, кириллицы и прочего мусора. Аа, подчёркивание ещё, но очень редко
 
@donRumata ну пробелы то вообще само собой, особенно в именах папок
кириллицу тоже запросто
а дописывать нечто в квадратных скобках через пробел к оригинальному имени вообще люблю
вот круглые скобки - редко, хотя их добавляют скайп, браузер и другие проги
а, ну ещё после даты пробел почти всегда и дата со временем пробелом разделяю
хотя если говорить о программах, то обычно без пробелов, если не считать имя solution'а (а значит и exe'шника)
как веб-разработчик тоже люблю дефисы
подчёркивание использую только в датах - люблю формат yyyy_MM_dd HH_mm_ss
 
8:10 PM
@Qwertiy, стоп. То, что ты мне прислал и то, что лежит в join.txt - различается. Т.е. набор файлов один, а в списке - другой.
 
@donRumata эм.. как так?
 
ls -1 | grep Vir > join2.txt
mcdiff join.txt join2.txt
 
@donRumata моим скриптом объединяется, командой с for тоже объединяется (правда, с потерей байта)
вероятно, ты что-то делаешь не так
обрати внимание на переводы строк - возможно, дело в них?
в этом файле используются линуксовые
@donRumata
 
@Qwertiy комманды выше - тоже линуксовые. И соответственно переводы строк в выхлопе - тоже всё unix
 
@donRumata назови имя файла, которое есть в списке, но нет в файлах
@donRumata ?
 
8:32 PM
@Qwertiy аааа, я тупой. Там надо было сделать sort. Файлы на месте.
 
@donRumata бывает :D
 

  last day (16 days later) »