什么是 Unix 的等价物echo foo | cat
?
ECHO foo | TYPE CON
挂起,等待输入,至少在 Windows XP/SP3 上。可能CON
不是标准输入而是键盘输入。
你可能想知道这个练习的意义是什么:有些程序在注意到它们的输出是管道时会表现出不同的行为,我想要一种方法来测试它们。
什么是 Unix 的等价物echo foo | cat
?
ECHO foo | TYPE CON
挂起,等待输入,至少在 Windows XP/SP3 上。可能CON
不是标准输入而是键盘输入。
你可能想知道这个练习的意义是什么:有些程序在注意到它们的输出是管道时会表现出不同的行为,我想要一种方法来测试它们。
不确定您想做什么,但这可能会有所帮助:
type file|more
这可能更适合您的需求。
foo.exe | findstr "^"
据我了解,您正在寻找一个可以通过管道传递给它的应用程序,该应用程序只需将通过管道传递给它的任何内容传递到标准输出。
我相信foo.exe | more
它将在 Windows 上达到您的目的。
注意:more
确实有分页输出的副作用,所以如果您需要测试更长的输出,您可以编写一个简单的应用程序来执行重定向。
编辑:您可以编写一个简单的批处理文件来将标准输入重定向到标准输出并通过管道传输到该文件。来自jeb的回答:
@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
在简单的情况下使用,并依靠它来获得更长的输出。