Is er vervanging voor cat op Windows

Ik moet twee binaire bestanden samenvoegen met een *.bat-script op Windows.

Hoe kan ik dat bereiken?


Antwoord 1, autoriteit 100%

Windows type-opdracht werkt op dezelfde manier als UNIX cat.

Voorbeeld 1:

type file1 file2 > file3

is equivalent van:

cat file1 file2 > file3

Voorbeeld 2:

type  *.vcf > all_in_one.vcf  

Deze opdracht zal alle vcards samenvoegen tot één.


Antwoord 2, autoriteit 19%

Je kunt copy /bals volgt gebruiken:

copy /b file1+file2 destfile

Antwoord 3, autoriteit 5%

Als je controle hebt over de machine waarop je je werk doet, raad ik je ten zeerste aan om GnuWin32te installeren. Gewoon “Download All” en laat het wget-programma alle pakketten ophalen. Je hebt dan toegang tot cat, grep, find, gzip, tar, less en honderden andere.

GnuWin32 is een van de eerste dingen die ik op een nieuwe Windows-box installeer.


Antwoord 4, autoriteit 3%

Schaamteloze PowerShell-plug (omdat ik denk dat de leercurve lastig is, dus iets aanleren bij elke gelegenheid kan helpen)

Get-Content file1,file2

Merk op dat typeeen alias is voor Get-Content, dus als je het beter vindt, kun je schrijven:

type file1,file2

Antwoord 5

Gebruik gewoon de opdracht dos copy met meerdere bronbestanden en één doelbestand.

copy file1+file2 appendedfile

Misschien hebt u de /B-optie nodig voor binaire bestanden


Antwoord 6

In Windows 10’s Redstone 1-release voegden de Windows een echt Linux-subsysteem aan voor de NTOS-kernel. Ik denk dat het oorspronkelijk was bedoeld om Android-apps te ondersteunen en misschien scenario’s van Docker-type. Microsoft volgde met Canonical en voegde een echte inheemse bash-shell toe. Ook kunt u de APT-pakketbeheer gebruiken om veel Ubuntu-pakketten te krijgen. U kunt bijvoorbeeld APT-GET GCC doen om de GCC-gereedschapsketen te installeren zoals u op een Linux-doos wilt.

Als er zoiets bestond terwijl ik op de universiteit was, denk ik dat ik de meeste van mijn Unix-programmeeropdrachten in de native Windows Bash Shell had kunnen doen.


Antwoord 7

Als u eenvoudig de tekst aan het einde van het bestaande bestand wilt toevoegen, kunt u de & GT; & GT gebruiken; pijp. ex:

echo new text >>existingFile.txt

Antwoord 8

Als u een batchscript moet gebruiken en hier een python hebt geïnstalleerd, is een polygot Antwoord in batch en 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())

Indien opgeslagen als join.bat-gebruik zou zijn:

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

Ook dit antwoordbedankt voor de inspiratie.


Antwoord 9

Ik probeer opnieuw deel te nemen aan het tar-archief dat is opgesplitst in een Linux-server.

En ik ontdekte dat als ik typegebruik in cmd.exevan Windows, het bestand in de verkeerde volgorde wordt samengevoegd (dwz typesoms plaatst XXXX.ad eerst en dan XXXX.ac , XXXX.aa enz …)

Dus ik vond een tool genaamd batin GitHub https://github. com/sharkdp/batdie een Windows-build heeft en betere codemarkering heeft en het belangrijkste is dat het prima werkt op Windows om opnieuw deel te nemen aan het tar-archief!


Antwoord 10

Dus ik was op zoek naar een vergelijkbare oplossing met de mogelijkheid om EOL-tekens te behouden en ontdekte dat er geen manier was, dus ik doe waar ik goed in ben en heb mijn eigen hulpprogramma gemaakt
Dit is een native cat-uitvoerbaar bestand voor Windows – https://mega.nz/#!6AVJ1QhL!qJgwQhL!qJgwQhL!qJgwQhL!qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk” -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

Ik noem het sharp-cat omdat het is gebouwd met C#, voel je vrij om te scannen met een antivirusprogramma en de broncode wordt op verzoek beschikbaar gesteld


Antwoord 11

De opdracht van het Windows-type heeft problemen, bijvoorbeeld met Unicode-tekens op een grens van 512 bytes. Probeer Cygwin’s kat.

Other episodes