Gibt es einen Ersatz für cat unter Windows?
-
09-06-2019 - |
Frage
Ich muss zwei Binärdateien mit einem verbinden *.bat
Skript unter Windows.
Wie kann ich das erreichen?
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