Devo unire due file binari con uno *.bat
script su Windows.
Come posso raggiungerlo?
type
può sostituire solo una parte delle cat
funzionalità (a causa della distinzione tra file binari e file di testo su Windows).
Devo unire due file binari con uno *.bat
script su Windows.
Come posso raggiungerlo?
type
può sostituire solo una parte delle cat
funzionalità (a causa della distinzione tra file binari e file di testo su Windows).
Risposte:
Il type
comando di Windows funziona in modo simile a UNIX cat
.
Esempio 1:
type file1 file2 > file3
è equivalente a:
cat file1 file2 > file3
Esempio 2:
type *.vcf > all_in_one.vcf
Questo comando unirà tutte le vcard in una.
type file1 file2 > file3 2>NUL
Puoi usare copy /b
così:
copy /b file1+file2 destfile
type
evidenziati nei commenti sulla risposta accettata ... a meno che questa soluzione non abbia svantaggi simili ma non sia abbastanza popolare da essere notata dalla gente!
Se hai il controllo della macchina su cui stai lavorando, ti consiglio vivamente di installare GnuWin32 . Basta "Scarica tutto" e lasciare che il programma wget recuperi tutti i pacchetti. Avrai quindi accesso a cat, grep, find, gzip, tar, less e centinaia di altri.
GnuWin32 è una delle prime cose che installo in una nuova finestra di Windows.
Spina Shameless PowerShell (perché penso che la curva di apprendimento sia un dolore, quindi insegnare qualcosa in ogni occasione può aiutare)
Get-Content file1,file2
Nota che type
è un alias per Get-Content, quindi se ti piace di più, puoi scrivere:
type file1,file2
type file1 file2 > dest
e ognuno è stato fatto in pochi secondi.
-Encoding UTF8
non ha cambiato nulla.
Nella versione Redstone 1 di Windows 10, Windows ha aggiunto un vero sottosistema Linux per il kernel NTOS. Penso che originariamente fosse destinato a supportare le app Android e forse gli scenari di tipo docker. Microsoft ha stretto una partnership con Canonical e ha aggiunto una vera shell bash nativa. Inoltre, è possibile utilizzare il gestore pacchetti apt per ottenere molti pacchetti Ubuntu. Ad esempio, puoi fare apt-get gcc per installare la catena di strumenti GCC come faresti su una scatola di Linux.
Se una cosa del genere esistesse mentre ero all'università, penso che avrei potuto svolgere la maggior parte dei miei incarichi di programmazione Unix nella bash shell nativa di Windows.
Se devi usare uno script batch e hai installato python qui c'è una risposta poligota in batch e 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())
Se salvato come join.bat l'utilizzo sarebbe:
join.bat file_one.bin file_two.bin out_file.bin
Grazie anche questa risposta per l'ispirazione.
Provo a ricongiungermi con l'archivio tar che è stato diviso in un server Linux.
E ho scoperto che se lo uso type
in Windows cmd.exe
, il file verrà unito in ordine erratotype
volte inserisce prima XXXX.ad e poi XXXX.ac, XXXX.aa ecc ...)
Quindi, ho trovato uno strumento chiamato bat
in GitHub https://github.com/sharkdp/bat che ha una build di Windows e ha una migliore evidenziazione del codice e l'importante è che funzioni bene su Windows per ricongiungersi all'archivio tar!
Quindi stavo cercando una soluzione simile con l'abilità di preservare i caratteri EOL e ho scoperto che non c'era modo, quindi faccio quello che faccio meglio e ho creato la mia utilità Questo è un eseguibile gatto nativo per 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
Lo chiamo sharp-cat perché è costruito con C #, sentiti libero di scansionare con un antivirus e il codice sorgente sarà reso disponibile su richiesta