Windows'ta kedi için yedek var mı


309

*.batWindows'da bir komut dosyasıyla iki ikili dosyaya katılmam gerekiyor .

Bunu nasıl başarabilirim?


15
Başlık sorunuz ve açıklama sorunuz tamamen senkronize değil. tür, başlık sorusu için en iyi cevap ve copy / b açıklama sorusu için en iyi cevap olacaktır. Mümkünse bu başlığı değiştirmek isteyebilirsiniz.
Joseph

2
@ Joseph type, catişlevselliğinin sadece bir kısmını değiştirebilir (Windows'ta ikili ve metin dosyaları arasındaki ayrım nedeniyle).
jfs

Yanıtlar:


452

Windows typekomutu UNIX'e benzer şekilde çalışır cat.

Örnek 1:

type file1 file2 > file3

şuna eşdeğerdir:

cat file1 file2 > file3

Örnek 2:

type  *.vcf > all_in_one.vcf  

Bu komut tüm vcards'ları bir araya getirecektir.


1
Bu durumda tür ile ilgili sorun, komut satırında belirtilen birden fazla dosya yazarken istenmeyen dosya üstbilgileri eklemesidir.
Greg Hewgill

2
Komut satırında birden fazla dosya belirtirken, dosyanın içeriğini kopyalamadan önce yazın birkaç boş satır ve dosya adı çıkar. Deneyin :)
Greg Hewgill

3
Ah, başlıkların stderr'a gittiğini fark etmemiştim. Bunu bildiğim iyi oldu.
Greg Hewgill

1
oklu yazının (yukarıdaki gibi) en azından XP'de büyük dosyalarla (> 2 GB veya 4 gibi) çalışmadığını unutmayın. Yine de "kopyala" komutunu kullanabilirsiniz (diğer cevaba bakınız).
rogerdpack

2
Bir başka ipucu: Başka çıkış gösterilmesini engellemek içintype file1 file2 > file3 2>NUL
Mike T

85

Bunun gibi kullanabilirsiniz copy /b:

copy /b file1+file2 destfile

5
dosya dizisi için "copy / b file * destfile" gibi joker karakterleri kullanabilirsiniz
Stalinko

kabul edilen cevabın typeyorumlarında belirtilen belirgin sorunlar göz önüne alındığında, bunun kabul edilen cevap olmadığını garip buluyorum ... bu çözümün benzer dezavantajları olmadığı, ancak insanların not edeceği kadar popüler olmadığı sürece!
Jony Thrive

23

İşinizi yaptığınız makine üzerinde kontrolünüz varsa, GnuWin32'yi yüklemenizi kesinlikle tavsiye ederim . Sadece "Tümünü İndir" ve wget programının tüm paketleri almasına izin verin. Daha sonra kedi, grep, bul, gzip, katran, daha az ve diğer yüzlerce kişiye erişiminiz olacak.

GnuWin32, yeni bir Windows kutusuna yüklediğim ilk şeylerden biri.


GetGnuWin32 (kurulumu basitleştirmek için) tavsiye ederim
jfs

3
Harici bir yardımcı program kullanmak kabul edilebilir ise ben ~ 30 Unix yardımcı programları içeren tek bir ~ 600 kB exe olan Windows için busybox tercih ederim. Tek fark basit bir "kedi" yerine "busybox cat" komutunu kullanmasıdır
Fr0sT

12

Utanmaz PowerShell fişi (çünkü öğrenme eğrisinin bir acı olduğunu düşünüyorum, bu yüzden herhangi bir fırsatta bir şeyler öğretmek yardımcı olabilir)

Get-Content file1,file2

Bunun typeGet-Content için bir takma ad olduğunu unutmayın , bu nedenle daha iyi isterseniz, şunları yazabilirsiniz:

type file1,file2

1
Çalışıyor, ama köpek yavaş. Otururken bu soruyu, powershell'in dosya başına yarım saat süren bazı büyük video dosyalarını birleştirmesini beklerken buldum. Süreci öldürdüm ve cmd kullanarak denedim type file1 file2 > destve her biri saniyeler içinde yapıldı.
stib


Nedense dosyalarımı UTF-16'ya çevirdi. -Encoding UTF8hiçbir şey değişmedi.
John Dvorak

5

Dos copy komutunu birden çok kaynak dosya ve bir hedef dosya ile kullanın.

copy file1+file2 appendedfile

İkili dosyalar için / B seçeneğine ihtiyacınız olabilir


2

Windows 10'un Redstone 1 sürümünde, Windows NTOS çekirdeği için gerçek bir Linux alt sistemi ekledi. Başlangıçta Android uygulamalarını ve belki de docker tipi senaryoları desteklemeyi amaçladığını düşünüyorum. Microsoft, Canonical ile ortaklık kurdu ve gerçek bir yerel bash kabuğu ekledi. Ayrıca, birçok Ubuntu paketini almak için apt paket yöneticisini kullanabilirsiniz. Örneğin, Linux kutusunda olduğu gibi GCC araç zincirini kurmak için apt-get gcc yapabilirsiniz.

Üniversitedeyken böyle bir şey olsaydı, sanırım yerel Windows bash kabuğundaki Unix programlama ödevlerimin çoğunu yapabilirdim.


1

Varolan dosyanın sonuna metin eklemek istiyorsanız >> yönergesini kullanabilirsiniz. örn:

echo new text >>existingFile.txt

0

Bir toplu iş komut dosyası kullanmanız gerekiyorsa ve burada python yüklüyse , toplu iş ve python'da çokgen bir cevaptır:

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())

Join.bat kullanımı olarak kaydedilmişse:

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

İlham için bu cevabı da teşekkürler .


0

Bir Linux sunucusunda bölünmüş tar arşivine yeniden katılmaya çalışıyorum.

Ve typeWindows'larda kullanırsam cmd.exe, dosyanın yanlış sırada birleştirilmesine neden olacağını buldum . (Yani typebazen XXXX.ad'i önce ve sonra XXXX.ac, XXXX.aa vb. Koyar ...)

Bu yüzden, batGitHub'da Windows derlemesi olan ve daha iyi kod vurgulaması olan https://github.com/sharkdp/bat adında bir araç buldum ve önemli olan şey, tar arşivine yeniden katılmak için Windows'da iyi çalışıyor!


0

Bu yüzden EOL karakterlerini korumak için boktanlığı ile benzer bir çözüm arıyordum ve hiçbir yolu olmadığını öğrendim, bu yüzden en iyi yaptığımı yaptım ve kendi yararımı yaptım Bu windows için yerel bir kedi - 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

C # ile oluşturulduğu gibi keskin kedi diyorum, antivirüs ile tarama yapmaktan çekinmeyin ve kaynak kodu istek üzerine sunulacak


-1

Windows type komutunda, örneğin 512 bayt sınırındaki Unicode karakterlerle ilgili sorunlar var. Cygwin'in kedisini dene.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.