*.bat
Windows'da bir komut dosyasıyla iki ikili dosyaya katılmam gerekiyor .
Bunu nasıl başarabilirim?
type
, cat
işlevselliğinin sadece bir kısmını değiştirebilir (Windows'ta ikili ve metin dosyaları arasındaki ayrım nedeniyle).
*.bat
Windows'da bir komut dosyasıyla iki ikili dosyaya katılmam gerekiyor .
Bunu nasıl başarabilirim?
type
, cat
işlevselliğinin sadece bir kısmını değiştirebilir (Windows'ta ikili ve metin dosyaları arasındaki ayrım nedeniyle).
Yanıtlar:
Windows type
komutu 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.
type file1 file2 > file3 2>NUL
Bunun gibi kullanabilirsiniz copy /b
:
copy /b file1+file2 destfile
type
yorumları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!
İş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.
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 type
Get-Content için bir takma ad olduğunu unutmayın , bu nedenle daha iyi isterseniz, şunları yazabilirsiniz:
type file1,file2
type file1 file2 > dest
ve her biri saniyeler içinde yapıldı.
'\n'
'\r\n'
-Encoding UTF8
hiçbir şey değişmedi.
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.
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 .
Bir Linux sunucusunda bölünmüş tar arşivine yeniden katılmaya çalışıyorum.
Ve type
Windows'larda kullanırsam cmd.exe
, dosyanın yanlış sırada birleştirilmesine neden olacağını buldum . (Yani type
bazen XXXX.ad'i önce ve sonra XXXX.ac, XXXX.aa vb. Koyar ...)
Bu yüzden, bat
GitHub'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!
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