Ich muss zwei Binärdateien mit einem *.bat
Skript unter Windows verbinden.
Wie kann ich das erreichen?
type
kann nur einen Teil der cat
Funktionalität ersetzen (aufgrund der Unterscheidung zwischen Binär- und Textdateien unter Windows).
Ich muss zwei Binärdateien mit einem *.bat
Skript unter Windows verbinden.
Wie kann ich das erreichen?
type
kann nur einen Teil der cat
Funktionalität ersetzen (aufgrund der Unterscheidung zwischen Binär- und Textdateien unter Windows).
Antworten:
Der 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
Dieser Befehl führt alle vcards zu einer zusammen.
type file1 file2 > file3 2>NUL
Sie können copy /b
wie folgt verwenden:
copy /b file1+file2 destfile
type
die in den Kommentaren zur akzeptierten Antwort aufgeführt sind ... es sei denn, diese Lösung hat ähnliche Nachteile, ist aber nicht populär genug, damit die Leute sie notieren können!
Wenn Sie die Kontrolle über den Computer haben, auf dem Sie arbeiten, empfehle ich dringend, GnuWin32 zu installieren . Einfach "Alle herunterladen" und das Wget-Programm alle Pakete abrufen lassen. Sie haben dann Zugriff auf cat, grep, find, gzip, tar, less und Hunderte anderer.
GnuWin32 ist eines der ersten Dinge, die ich auf einer neuen Windows-Box installiere.
Schamloser PowerShell-Stecker (weil ich denke, dass die Lernkurve ein Schmerz ist, kann es hilfreich sein, bei jeder Gelegenheit etwas zu lehren)
Get-Content file1,file2
Beachten Sie, dass dies type
ein Alias für Get-Content ist. Wenn es Ihnen besser gefällt, können Sie Folgendes schreiben:
type file1,file2
type file1 file2 > dest
und mit cmd versucht und jeder war in Sekunden erledigt.
-Encoding UTF8
hat nichts geändert.
In der Redstone 1-Version von Windows 10 hat Windows ein echtes Linux-Subsystem für den NTOS-Kernel hinzugefügt. Ich denke, ursprünglich sollte es Android-Apps und möglicherweise Docker-Szenarien unterstützen. Microsoft hat sich mit Canonical zusammengetan und eine aktuelle native Bash-Shell hinzugefügt. Sie können auch den apt-Paketmanager verwenden, um viele Ubuntu-Pakete abzurufen. Sie können beispielsweise apt-get gcc ausführen, um die GCC-Toolkette wie auf einer Linux-Box zu installieren.
Wenn so etwas während meines Studiums existiert hätte, hätte ich wahrscheinlich die meisten meiner Unix-Programmieraufgaben in der nativen Windows-Bash-Shell erledigen können.
Wenn Sie ein Batch-Skript verwenden müssen und Python installiert haben, finden Sie hier eine Polygot- Antwort in Batch 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 gespeichert, wäre die Verwendung:
join.bat file_one.bin file_two.bin out_file.bin
Danke auch dieser Antwort für die Inspiration.
Ich versuche, mich wieder dem Tar-Archiv anzuschließen, das auf einem Linux-Server aufgeteilt wurde.
Und ich habe festgestellt, dass bei Verwendung type
unter Windows cmd.exe
die Datei in der falschen Reihenfolge zusammengefügt wird (dh type
manchmal wird zuerst XXXX.ad und dann XXXX.ac, XXXX.aa usw. eingefügt).
Also habe ich bat
in GitHub https://github.com/sharkdp/bat ein Tool gefunden, das einen Windows-Build und eine bessere Code-Hervorhebung hat. Wichtig ist, dass es unter Windows gut funktioniert, um sich wieder dem Tar-Archiv anzuschließen!
Also suchte ich nach einer ähnlichen Lösung mit der Fähigkeit, EOL-Zeichen zu erhalten, und fand heraus, dass es keinen Weg gibt. Also mache ich das, was ich am besten kann und mache meine eigene Nützlichkeit. Dies ist eine native Katze, die für Windows ausführbar ist - 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 Sharp-Cat, da es mit C # erstellt wurde. Sie können es gerne mit einem Antivirenprogramm scannen. Der Quellcode wird auf Anfrage zur Verfügung gestellt