Existe algum substituto para o gato nas janelas

Preciso de juntar dois ficheiros binários com um programa *.bat no Windows.

Como posso conseguir isso?

Author: Demurgos, 2008-09-13

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ó.

 397
Author: Nathan Jones, 2015-03-31 13:19:47

Pode usar copy /b Assim:

copy /b file1+file2 destfile
 76
Author: Greg Hewgill, 2008-09-13 01:29:36

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.
 21
Author: David Citron, 2008-09-13 03:45:06
Plug Shameless PowerShell (because I think the learning curve is a pain, so teaching something at any opportunity can help) {[[5]}
Get-Content file1,file2

Note que type é um pseudónimo para obter conteúdo, por isso, se gostar mais, pode escrever:

type file1,file2
 11
Author: Jay Bazuzi, 2008-09-13 02:00:03

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

 3
Author: simon, 2008-09-13 01:32:55

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.

 2
Author: sam msft, 2016-05-17 20:15:34

Se quiser simplesmente adicionar texto ao fim do ficheiro existente, pode usar o '> pipe'. ex:

echo new text >>existingFile.txt
 1
Author: Jahmic, 2014-05-30 03:49:44

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.

 0
Author: Noelkd, 2017-05-23 12:10:46