Saya perlu menggabungkan dua file biner dengan *.bat
skrip di Windows.
Bagaimana saya bisa mencapainya?
type
hanya dapat menggantikan sebagian dari cat
fungsi (karena perbedaan antara file biner dan teks pada Windows).
Saya perlu menggabungkan dua file biner dengan *.bat
skrip di Windows.
Bagaimana saya bisa mencapainya?
type
hanya dapat menggantikan sebagian dari cat
fungsi (karena perbedaan antara file biner dan teks pada Windows).
Jawaban:
type
Perintah Windows bekerja mirip dengan UNIX cat
.
Contoh 1:
type file1 file2 > file3
setara dengan:
cat file1 file2 > file3
Contoh 2:
type *.vcf > all_in_one.vcf
Perintah ini akan menggabungkan semua kartu menjadi satu.
type file1 file2 > file3 2>NUL
Anda bisa menggunakan copy /b
seperti ini:
copy /b file1+file2 destfile
type
dijabarkan dalam komentar pada jawaban yang diterima ... kecuali solusi ini memiliki kelemahan serupa tetapi tidak cukup populer bagi orang untuk mencatatnya!
Jika Anda memiliki kendali atas mesin tempat Anda melakukan pekerjaan Anda, saya sangat menyarankan untuk menginstal GnuWin32 . Cukup "Unduh Semua" dan biarkan program wget mengambil semua paket. Anda kemudian akan memiliki akses ke kucing, grep, temukan, gzip, tar, kurang, dan ratusan lainnya.
GnuWin32 adalah salah satu hal pertama yang saya instal pada kotak Windows baru.
Steker PowerShell Shameless (karena saya pikir kurva belajar itu menyebalkan, jadi mengajarkan sesuatu di setiap kesempatan dapat membantu)
Get-Content file1,file2
Perhatikan bahwa type
ini adalah alias untuk Konten-Get, jadi jika Anda lebih menyukainya, Anda dapat menulis:
type file1,file2
type file1 file2 > dest
dan masing-masing dilakukan dalam hitungan detik.
-Encoding UTF8
tidak mengubah apa pun.
Dalam rilis Redstone 1 Windows 10, Windows menambahkan subsistem Linux nyata untuk kernel NTOS. Saya pikir awalnya ini dimaksudkan untuk mendukung aplikasi Android, dan mungkin skenario tipe buruh pelabuhan. Microsoft bermitra dengan Canonical dan menambahkan shell bash asli yang sebenarnya. Anda juga dapat menggunakan manajer paket apt untuk mendapatkan banyak paket Ubuntu. Misalnya, Anda dapat melakukan apt-get gcc untuk menginstal rantai alat GCC seperti yang Anda lakukan pada kotak Linux.
Jika hal seperti itu ada ketika saya masih di universitas, saya pikir saya bisa melakukan sebagian besar tugas pemrograman Unix saya di shell Windows asli.
Jika Anda harus menggunakan skrip batch dan memasang python di sini adalah jawaban polygot dalam batch dan 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())
Jika disimpan sebagai join.bat, penggunaannya adalah:
join.bat file_one.bin file_two.bin out_file.bin
Terima kasih juga jawaban ini untuk inspirasi.
Saya mencoba untuk bergabung kembali dengan arsip tar yang telah dibelah di server Linux.
Dan saya menemukan jika saya gunakan type
di Windows cmd.exe
, itu akan menyebabkan file bergabung dengan urutan yang salah. (Mis. type
Kadang-kadang akan menempatkan XXXX.ad pada awalnya dan kemudian XXXX.ac, XXXX.aa dll ...)
Jadi, saya menemukan alat bernama bat
GitHub https://github.com/sharkdp/bat yang memiliki Windows build, dan memiliki highlight kode yang lebih baik dan yang penting adalah, ia berfungsi dengan baik pada Windows untuk bergabung kembali dengan arsip tar!
Jadi saya sedang mencari solusi yang sama dengan kemampuan untuk melestarikan karakter EOL dan menemukan tidak ada cara, jadi saya melakukan apa yang saya lakukan dan membuat utillity saya sendiri. Ini adalah cat asli yang dapat dieksekusi untuk 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
Saya menyebutnya sharp-cat karena dibangun dengan C #, jangan ragu untuk memindai dengan antivirus dan kode sumber akan tersedia berdasarkan permintaan