Unix echo foo | cat
的等价物是什么?
ECHO foo | TYPE CON
挂起,等待输入,至少在Windows XP / SP3上。可能CON
不是标准输入而是键盘输入。
你可能想知道这个练习的重点是什么:有些程序在注意到它们的输出被管道输出时表现不同,我想要一种方法来测试它们。
答案 0 :(得分:3)
不确定你想做什么,但这可能会有所帮助:
type file|more
这可能更适合您的需求。
foo.exe | findstr "^"
答案 1 :(得分:1)
据我了解,您正在寻找一个可以管道的应用程序,只需将通过管道输送到stdout的任何内容传递给它。
我相信foo.exe | more
将在Windows上实现您的目的。
注意:more
确实具有分页输出的副作用,因此如果您需要测试更长的输出,您可以编写一个执行重定向的简单应用程序。
编辑:您可以编写一个简单的批处理文件来将stdin重定向到stdout并将其传递给它。 来自jeb的回答here:
@echo off
setlocal DisableDelayedExpansion
for /F "tokens=*" %%a in ('findstr /n $') do (
set "line=%%a"
setlocal EnableDelayedExpansion
set "line=!line:*:=!"
echo(!line!
endlocal
)
将其另存为redir.bat并使用foo.exe | redir.bat
之类的内容。在Win7上测试过。兼容默认的Windows安装。唯一的缺点是它不容易记住。
对于简单的情况,我会使用more
,并且为了更长的输出而使用{{1}}。