如何将文件输入到读取 stdin 的程序中(在 Windows 命令行上)?

joh*_*joh 12 command-line

我有一个处理标准输入的程序 P。如何从Windows 命令行将文件输入该程序?

P < filename
Run Code Online (Sandbox Code Playgroud)

不起作用。

filename | P
filename > P
Run Code Online (Sandbox Code Playgroud)

也不起作用。

编辑

再试一次,事实上

P < filename
Run Code Online (Sandbox Code Playgroud)

或者

grep abc < lab.txt
Run Code Online (Sandbox Code Playgroud)

确实有效

小智 2

我尝试了这个脚本,将文件名的内容设置为变量“a”,然后将此变量“a”作为参数提供给“p”程序。

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

请注意,此脚本有许多限制,因为我在 findstr 命令中使用正则表达式,假设文件名的内容只是文本。我不知道你的文件名内容是什么,所以你必须修改它以满足你的需要。您还需要修改程序“p”以使其接受参数。希望这有帮助。