我的pipe道为什么失败?

我一直在搞.cmd脚本,想练习pipe道。 我写了一个脚本来制作文件,另一个用Notepad ++编辑它们。 制作脚本(称为create.cmd)如下所示:

@echo off copy nul %1 > nul echo %1 

编辑脚本(称为edit.cmd)如下所示:

 @echo off start notepad++.exe %1 

现在,我想尝试创build一个文件,然后以文件名称的forms将其输出(因此是回波行)输出到编辑脚本中。 所以我写的是这样的:

 create foo.txt | edit 

但是,这失败了 – 我得到一个打开的Notepad ++窗口,但我新创build的文件不会出现在那里。 我在这里失踪或做错了什么?

Solutions Collecting From Web of "我的pipe道为什么失败?"

您不是从第二个批处理文件中的管道读取数据。

为了从第一批中只读取一行输出,文件名就足够了:

 @echo off set /p file= start notepad.exe %file% 

否则,请检查读取批处理文件中的标准输入流以读取多行输入。

edit.bat没有%1参数

你可以试试这个:

 @echo off copy nul %1 > nul echo %1 call edit %1