Existe algum substituto para o gato nas janelas
Preciso de juntar dois ficheiros binários com um programa *.bat
no Windows.
8 answers
O comando Windows type
funciona de forma semelhante ao UNIX cat
.
Exemplo 1:
type file1 file2 > file3
É equivalente a:
cat file1 file2 > file3
Exemplo 2:
type *.vcf > all_in_one.vcf
Este comando irá juntar todos os vcards num só.
Pode usar copy /b
Assim:
copy /b file1+file2 destfile
Se tem controlo sobre a máquina onde está a fazer o seu trabalho, recomendo vivamente a instalaçãodo GnuWin32 . Basta "baixar tudo" e deixar o programa wget recuperar todos os pacotes. Você terá então acesso a cat, grep, find, gzip, tar, less, e centenas de outros.
O GnuWin32 é uma das primeiras coisas que instalo numa nova caixa do Windows.Get-Content file1,file2
Note que type
é um pseudónimo para obter conteúdo, por isso, se gostar mais, pode escrever:
type file1,file2
Basta usar o comando de cópia do dos com vários ficheiros de código e um ficheiro de destino.
Copiar o ficheiro 1+Ficheiro 2 ficheiro anexado
Poderá precisar da opção /B para os ficheiros binários
Na versão Redstone 1 do Windows 10, O Windows adicionou um sub-sistema Linux real para o kernel NTOS. Eu acho que originalmente era destinado a apoiar aplicativos Android, e talvez cenários tipo docker. A Microsoft fez parceria com a Canonical e adicionou um shell Bash nativo. Além disso, você pode usar o Gerenciador de pacotes apt para obter muitos pacotes Ubuntu. Por exemplo, você pode fazer apt-get gcc para instalar a cadeia de ferramentas GCC como você faria em uma caixa Linux.
Se tal coisa existisse enquanto eu estava em Universidade, acho que podia ter feito a maioria das minhas tarefas de programação Unix no shell nativo do Windows bash.
Se quiser simplesmente adicionar texto ao fim do ficheiro existente, pode usar o '> pipe'. ex:
echo new text >>existingFile.txt
Se tiver de usar um programa em lote e instalar aqui o python é uma resposta poligótica em lote 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 salvos como join.utilização das MTD seria:
join.bat file_one.bin file_two.bin out_file.bin
Obrigado também esta resposta pela inspiração.