Неконкатенация файлов с использованием хитрого метода Джеба - PullRequest
0 голосов
/ 01 июня 2018

РЕДАКТИРОВАТЬ: Мой существенный вопрос (без конкретной настройки, для которой мне нужно решение, как описано в моей первоначальной публикации):

BinFile.bin isфайл, объединенный из двоичных файлов и текстового файла.Включенный текстовый файл состоит только из строк, начинающихся с определенной строки, например, ;;; === ,,,

С командным файлом:

findstr /v "^;;;===,,," "BinFile.bin" > output.bin

генерируется выходной bin-файл, в котором текстовый файл полностью удаляется.

Как использовать findstr (или другую команду dos) для удаления не только всех строк, начинающихся с указанной строки, но и частикорзины перед первой такой строкой (т. е. полная двоичная часть, предшествующая текстовому файлу)?



>>> Мое исходное сообщение:

Джеб изобрел метод для объединения файлов с использованием собственных инструментов Windows, которые могут быть преобразованы (определенным образом) с использованием собственных инструментов. Его решение просто гениально!

copy /a batchBin.bat + /b myBinaryFile.bin /b combined.bat

с batchBin.bat:

;;;===,,,@echo off
;;;===,,,echo line2
;;;===,,,findstr /v "^;;;===,,," "%~f0" > output.bin
;;;===,,,exit /b

"Ключ - команда findstr, она выводит все строкине начинаются с ;;; === ,,,. И поскольку каждый из них является стандартным пакетным разделителем, он может быть префиксом любой команды в пакетном файле в любой комбинации. "

Итак, myBinaryFile.bin можно извлечь из комбинированного .bat - только с помощью встроенных инструментов!

Мой вопрос:

В примере с Jeb объединенный файл представляет собой командный файл, поскольку первый файл вКоманда копирования представляет собой командный файл. Можно ли использовать хитрый метод Джеба и для следующей задачи, где объединенный файл будет объединен .exe, exe-файл?

copy /b aBat2ExeFile.exe + /a delimiter.bat + /b myBinaryFile.bin /b combined.exe

, где delimiter.bat будет выглядеть примерно так:

;;;===,,,REM

и aBat2ExeFile.exe будет пакетным файлом (aBat2ExeFile.bat), преобразованным в exe, с хитрым использованием findstr, как в batchBin.bat, но с результатом

[...] > output.exe

В aBat2ExeFile.bat следует использовать findstr, в результате чего все строки comb.exe до и включая строку ';;; === ,,, REM' будут игнорироваться, а output.exe будет равен myBinaryFile.bin снова?

Думаю, концепция верна.Но как это можно реализовать в aBat2ExeFile.bat?

РЕДАКТИРОВАТЬ: Мой вопрос может быть упрощен (описанный выше кадр не является существенным): как метод findstr, используемый jeb, может быть адаптирован для обработки двоичного файла таким образом, что не только начинаются строкис ';;; === ,,,' но также со всеми строками , предшествующими , первая такая строка "игнорируется"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...