Вопрос

Мне нужно объединить два двоичных файла с помощью *.bat скрипт в Windows.

Как я могу этого добиться?

Это было полезно?

Решение

Окна type команда работает аналогично UNIX cat.

Пример 1:

type file1 file2 > file3

эквивалентно:

cat file1 file2 > file3

Пример 2:

type  *.vcf > all_in_one.vcf  

Эта команда объединит все vcards в одну.

Другие советы

Вы можете использовать copy /b так:

copy /b file1+file2 destfile

Если у вас есть контроль над машиной, на которой вы выполняете свою работу, я настоятельно рекомендую установить ГнуВин32.Просто «Загрузить все» и позволить программе wget получить все пакеты.После этого у вас появится доступ к cat, grep, find, gzip, tar, less и сотням других.

GnuWin32 — одна из первых вещей, которые я устанавливаю на новую систему Windows.

Бесстыдный плагин PowerShell (потому что я думаю, что кривая обучения — это боль, поэтому обучение чему-то при любой возможности может помочь)

Get-Content file1,file2

Обратите внимание, что type — это псевдоним Get-Content, поэтому, если он вам больше нравится, вы можете написать:

type file1,file2

Просто используйте команду копирования dos с несколькими исходными файлами и одним целевым файлом.

скопировать добавленный файл file1+file2

Вам может понадобиться опция /B для двоичных файлов.

В выпуске Redstone 1 Windows 10 Windows добавила настоящую подсистему Linux для ядра NTOS.Я думаю, что изначально он был предназначен для поддержки приложений Android и, возможно, сценариев типа докера.Microsoft заключила партнерское соглашение с Canonical и добавила настоящую оболочку bash.Кроме того, вы можете использовать менеджер пакетов apt, чтобы получить множество пакетов Ubuntu.Например, вы можете выполнить apt-get gcc, чтобы установить цепочку инструментов GCC, как если бы вы это делали в Linux.

Если бы такая вещь существовала, когда я учился в университете, думаю, я мог бы выполнять большую часть своих заданий по программированию для Unix в родной оболочке bash Windows.

Если вы просто хотите добавить текст в конец существующего файла, вы можете использовать канал >>.бывший:

echo new text >>existingFile.txt

Если вам нужно использовать пакетный скрипт и установить Python, вот полигот ответ в пакетном режиме и на Python:

1>2# : ^
'''
@echo off
python "%~nx0" " %~nx1" "%~nx2" "%~nx3"
exit /b
rem ^
'''
import sys
import os

sys.argv = [argv.strip() for argv in sys.argv]
if len(sys.argv) != 4:
    sys.exit(1)

_, file_one, file_two, out_file = sys.argv

for file_name in [file_one, file_two]:
    if not os.path.isfile(file_name):
        print "Can't find: {0}".format(file_name)
        sys.exit(1)

if os.path.isfile(out_file):
    print "Output file exists and will be overwritten"

with open(out_file, "wb") as out:
    with open(file_one, "rb") as f1:
        out.write(f1.read())

    with open(file_two, "rb") as f2:
        out.write(f2.read())

Если сохранить как join.bat, использование будет следующим:

join.bat file_one.bin file_two.bin out_file.bin

Спасибо вам тоже этот ответ для вдохновения.

Я пытаюсь воссоединиться с tar-архивом, который был разделен на сервере Linux.

И я обнаружил, что если я использую type в Windows cmd.exe, это приведет к объединению файлов в неправильном порядке (т.е. type иногда сначала помещается XXXX.ad, а затем XXXX.ac, XXXX.aa и т. д.)

Итак, я нашел инструмент под названием bat в GitHub https://github.com/sharkdp/bat который имеет сборку для Windows и имеет лучшую подсветку кода, и, что важно, он отлично работает в Windows для повторного присоединения к tar-архиву!

Поэтому я искал аналогичное решение с страстью, чтобы сохранить чарс EOL и обнаружил, что не было никакого пути, поэтому я делаю то, что делаю лучше всего, и сделал свой собственный utillity, это нативная кошка, исполняемая для Windows - https://mega.nz/#!6AVgwQhL!qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk

Usage: cat file1 file2 file3 file4 -o output.txt
-o | Specifies the next arg is the output, we must use this rather than ">>" to preserve the line endings

Я называю его Sharp-Cat, так как он создан на C#, не стесняйтесь сканировать антивирусом, и исходный код будет доступен по запросу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top