2012-02-28 34 views
5

Tôi gặp tình huống khi viết tập lệnh dos. Một công cụ tôi đang sử dụng để tính toán CRC (tổng kiểm tra) của một chuỗi văn bản yêu cầu văn bản nằm trong một tệp. Dữ liệu tôi đang cố gắng lấy CRC là tên tệp, nhưng khi sử dụng hàng loạt để đặt tên tệp này vào tệp văn bản để tính toán CRC, tập lệnh theo lô sẽ tự động đặt dòng kết thúc (CR/LF) và dòng trống tại kết thúc. Vì điều này làm cho CRC sai, đó là một vấn đề.Dos Lô: ghi vào các tệp không có dòng kết thúc

Có cách nào để nhận tập lệnh lô để ghi vào tệp văn bản mà không cần thêm dòng kết thúc không? IE để sản xuất một dòng chưa hoàn thành để tập tin?

-K.Barad

+1

công cụ có chấp nhận đầu vào từ dòng lệnh hay bạn gọi nó bằng một đường ống '|'? – vulkanino

Trả lời

9

<nul set /p ".=text" > file

Đó là nhanh hơn và an toàn hơn echo.|set /P ="text" > file

Việc chuyển hướng nul là nhanh hơn so với một ống với echo. (btw echo. có thể thất bại).
Kiểu của dấu ngoặc kép cho phép xuất cũng báo giá.

Nhưng luôn có những hạn chế!
Vista và Win7 có một "tính năng" để ngăn chặn không gian, tab và CR hàng đầu.
Xp có thể xuất văn bản với không gian hàng đầu và như vậy.
Và không thể bắt đầu văn bản đầu ra có dấu bằng (kết quả là lỗi cú pháp)

+0

cảm ơn, điều này giải quyết nó cho tôi –

+0

Khi tôi chạy ' tập tin' nó treo thiết bị đầu cuối của tôi. Chuyện gì vậy? – raphaelh

+0

Tại sao tôi nhận được 'Cú pháp của lệnh không chính xác.' khi tôi thử nó? .. –

5

Bạn có thể

echo.|set /P ="text" > file 

source

Hoặc trực tiếp ống văn bản vào dòng lệnh: echo "văn bản" | checksum_program.exe

chỉnh sửa:

nếu bạn đang sử dụng CRC32DOS, sau đó bạn có thể sử dụng tùy chọn dòng lệnh của nó -c bỏ qua CR s.

+0

tiếc là đó là một chương trình CRC tùy chỉnh. Cảm ơn cho tip mặc dù, tập tin phụ thêm mà không có dòng mới là một kỹ thuật hữu ích. –

Các vấn đề liên quan