Làm cách nào tôi có thể cung cấp tệp vào chương trình đọc stdin (trên dòng lệnh Windows)?


7

Tôi có một chương trình P xử lý stdin. Làm cách nào tôi có thể cung cấp một tệp vào chương trình này từ dòng lệnh windows ?

P < filename

không hoạt động.

filename | P
filename > P

cũng không hoạt động.

chỉnh sửa

đã thử lại, trên thực tế

P < filename

hoặc là

grep abc < lab.txt

làm việc . Cảm ơn bạn đã tham gia.


1
Bạn đang làm việc trên hệ điều hành nào?
EBGreen

1
Chuyển hướng lệnh trong MS Windows hoạt động giống như trong GNU / Linux. Nếu p < myfilekhông hoạt động, có lẽ đó không phải là vấn đề của chuyển hướng. Hãy thử một cái gì đó như sort < myfilevà xem những gì xảy ra.
bjanssen

như đã đề cập, p <file không hoạt động.
Joh

1
Bạn đã thử chưatype filename | P
Kevin Fegan

1
Điều đó có giải quyết được vấn đề của bạn không? Tôi có nên đăng nó như là một câu trả lời? ... Đợi đã, tôi thấy bạn đã chỉnh sửa câu hỏi của bạn P < filename hiện đang hoạt động. Âm thanh như bạn không còn có vấn đề.
Kevin Fegan

Câu trả lời:


2

Tôi đã thử tập lệnh này đặt nội dung của tên tệp là biến "a" và sau đó đưa biến này "a" làm đối số cho chương trình "p".

@echo off
for /f "tokens=1 delims={" %%a in ('TYPE filename ^| FINDstr /r "[a-z]"') do (cmd /c p "%%a")
pause

Lưu ý rằng tập lệnh này có một số hạn chế vì tôi đã sử dụng biểu thức chính quy trong lệnh findstr giả sử rằng nội dung của tên tệp chỉ là văn bản. Tôi không biết nội dung tên tệp của bạn là gì nên bạn phải sửa đổi nó để đáp ứng nhu cầu của bạn. Ngoài ra, bạn cần sửa đổi "p" chương trình của mình để nó chấp nhận đối số. Hy vọng điều này giúp đỡ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.