Tôi cần tham gia hai tệp nhị phân với một *.bat
tập lệnh trên Windows.
Làm thế nào tôi có thể đạt được điều đó?
type
có thể thay thế một phần cat
chức năng của (do sự phân biệt giữa tệp nhị phân và tệp văn bản trên Windows).
Tôi cần tham gia hai tệp nhị phân với một *.bat
tập lệnh trên Windows.
Làm thế nào tôi có thể đạt được điều đó?
type
có thể thay thế một phần cat
chức năng của (do sự phân biệt giữa tệp nhị phân và tệp văn bản trên Windows).
Câu trả lời:
type
Lệnh Windows hoạt động tương tự UNIX cat
.
Ví dụ 1:
type file1 file2 > file3
tương đương với:
cat file1 file2 > file3
Ví dụ 2:
type *.vcf > all_in_one.vcf
Lệnh này sẽ hợp nhất tất cả các vcard thành một.
type file1 file2 > file3 2>NUL
Bạn có thể sử dụng copy /b
như thế này:
copy /b file1+file2 destfile
type
nêu trong các nhận xét về câu trả lời được chấp nhận ... trừ khi giải pháp này có nhược điểm tương tự nhưng không đủ phổ biến để mọi người lưu ý!
Nếu bạn có quyền kiểm soát máy mà bạn đang làm việc, tôi khuyên bạn nên cài đặt GnuWin32 . Chỉ cần "Tải xuống tất cả" và để chương trình wget lấy tất cả các gói. Sau đó, bạn sẽ có quyền truy cập vào cat, grep, find, gzip, tar, ít hơn và hàng trăm người khác.
GnuWin32 là một trong những thứ đầu tiên tôi cài đặt trên hộp Windows mới.
Ổ cắm PowerShell không biết xấu hổ (vì tôi nghĩ rằng việc học là một nỗi đau, vì vậy việc dạy một cái gì đó ở bất kỳ cơ hội nào cũng có thể giúp đỡ)
Get-Content file1,file2
Lưu ý rằng đó type
là bí danh cho Get-Content, vì vậy nếu bạn thích nó hơn, bạn có thể viết:
type file1,file2
type file1 file2 > dest
và mỗi cái được thực hiện trong vài giây.
-Encoding UTF8
không thay đổi gì cả.
Trong bản phát hành Redstone 1 của Windows 10, Windows đã thêm một hệ thống con Linux thực sự cho nhân NTOS. Tôi nghĩ ban đầu nó được dự định để hỗ trợ các ứng dụng Android và có thể là các kịch bản loại docker. Microsoft hợp tác với Canonical và thêm một vỏ bash bản địa thực tế. Ngoài ra, bạn có thể sử dụng trình quản lý gói apt để nhận nhiều gói Ubuntu. Ví dụ: bạn có thể thực hiện apt-get gcc để cài đặt chuỗi công cụ GCC như trên hộp Linux.
Nếu một thứ như vậy tồn tại khi tôi còn ở trường đại học, tôi nghĩ rằng tôi có thể đã thực hiện hầu hết các bài tập lập trình Unix của mình trong Windows bash shell.
Nếu bạn phải sử dụng tập lệnh bó và cài đặt python thì đây là câu trả lời polygot trong đợt và 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())
Nếu được lưu dưới dạng tham gia.bat sẽ là:
join.bat file_one.bin file_two.bin out_file.bin
Cảm ơn câu trả lời này cho cảm hứng.
Tôi cố gắng tham gia lại kho lưu trữ tar đã được chia tách trong máy chủ Linux.
Và tôi đã tìm thấy nếu tôi sử dụng type
trong Windows cmd.exe
, nó sẽ khiến tệp bị nối sai thứ tự (nghĩa là type
đôi khi sẽ đặt XXXX.ad vào lúc đầu và sau đó là XXXX.ac, XXXX.aa, v.v.)
Vì vậy, tôi đã tìm thấy một công cụ có tên bat
trong GitHub https://github.com/sharkdp/bat có bản dựng Windows và có mã nổi bật tốt hơn và điều quan trọng là, nó hoạt động tốt trên Windows để tham gia lưu trữ tar!
Vì vậy, tôi đã tìm kiếm một giải pháp tương tự với khả năng bảo toàn các ký tự EOL và phát hiện ra không có cách nào, vì vậy tôi làm những gì tôi làm tốt nhất và tự làm điều này Đây là một con mèo bản địa có thể thực thi được cho 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
Tôi gọi nó là mèo sắc như được xây dựng với C #, thoải mái quét bằng phần mềm chống vi-rút và mã nguồn sẽ được cung cấp theo yêu cầu
Lệnh loại Windows có vấn đề, ví dụ với các ký tự Unicode trên ranh giới 512 byte. Hãy thử con mèo của Cygwin.