Frage

Ich muss zwei Binärdateien mit einem verbinden *.bat Skript unter Windows.

Wie kann ich das erreichen?

War es hilfreich?

Lösung

Windows-type Befehl funktioniert ähnlich wie UNIX cat.

Beispiel 1:

type file1 file2 > file3

ist äquivalent zu:

cat file1 file2 > file3

Beispiel 2:

type  *.vcf > all_in_one.vcf  

Mit diesem Befehl alle vcards zu einer Einheit verschmelzen wird.

Andere Tipps

Sie können copy /b wie folgt verwenden:

copy /b file1+file2 destfile

Wenn Sie die Kontrolle über die Maschine, wo Sie Ihre Arbeit tun, ich Installation empfehlen GnuWin32 . Nur „Download All“ und das wget Programm lassen alle Pakete abrufen. Sie erhalten dann Zugang zu Katze haben, grep, finden, gzip, Teer, weniger, und Hunderte von anderen.

GnuWin32 ist eines der ersten Dinge, die ich auf einem neuen Windows installieren zu können.

Schamloser PowerShell-Plugin (weil ich denke, dass die Lernkurve mühsam ist, sodass es hilfreich sein kann, bei jeder Gelegenheit etwas beizubringen)

Get-Content file1,file2

Beachten Sie, dass type ist ein Alias ​​für Get-Content. Wenn es Ihnen also besser gefällt, können Sie Folgendes schreiben:

type file1,file2

Sie werden die DOS-Befehl mit mehreren Quelldateien und eine Zieldatei kopiert werden.

Kopieren Datei1 + Datei2 appendedfile

Sie können die Option / B Option für binäre Dateien benötigen

In Windows 10 ist Redstone 1 Release hinzugefügt Windows ein echtes Linux-Subsystem für den NTOS Kernel. Ich denke, dass es ursprünglich beabsichtigt war, um Android-Apps zu unterstützen, und vielleicht Docker Typ-Szenarien. Microsoft eine Partnerschaft mit Canonical und fügte hinzu, eine tatsächliche nativen Bash-Shell. Außerdem können Sie den apt Paket-Manager verwenden, um viele Ubuntu-Pakete zu bekommen. Zum Beispiel können Sie tun, gcc apt-get die GCC-Toolkette, wie Sie es auf einer Linux-Box zu installieren.

Wenn so etwas existierte, während ich in der Universität war, ich glaube, ich die meisten meiner Unix-Programmieraufgaben in der nativen Windows-Bash-Shell getan haben könnte.

Wenn Sie einfach nur Text an das Ende der bestehenden Datei angehängt werden sollen, können Sie das >> Rohr verwenden. Ex:

echo new text >>existingFile.txt

Wenn Sie eine Batch-Skript verwenden und Python hier installiert haben, ist ein polygot Antwort in Chargen- und 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())

Wenn als join.bat Nutzung gespeichert wäre:

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

Danke zu diese Antwort für die Inspiration.

Ich versuche, tar-Archiv wieder zu vereinigen, die in einem Linux-Server gesplittet wurden.

Und ich fand, wenn ich type in Windows die cmd.exe verwenden, wird es bewirkt, dass die Datei in falscher Reihenfolge verbunden werden. (Dh type manchmal wird puts XXXX.ad auf den ersten und dann XXXX.ac, XXXX.aa etc ...)

Also, ich fand ein Tool namens bat in GitHub https://github.com/sharkdp/bat, die ein Windows-Build hat, und hat eine besseres Code-Highlights und das Wichtigste ist, es funktioniert unter Windows Fein tar-Archiv wieder zusammenzubringen!

Also ich war auf der Suche nach einer ähnlichen Lösung mit dem abillity EOL Zeichen zu erhalten und fand heraus, es gab keine Möglichkeit, so dass ich das tun, was ich am besten kann und machte meine eigene utillity Dies ist eine native Katze ausführbare Datei für 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

Ich nenne es scharf Katze als mit C # gebaut, können Sie mit einem Antivirus und Source-Code scannen wird auf Anfrage zur Verfügung gestellt werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top