为什么我的管道失效?

时间:2014-02-01 01:55:26

标签: windows scripting cmd pipe

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

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

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

@echo off
start notepad++.exe %1

现在,我想尝试创建一个文件,然后将其输出(因此回显线)以文件名的形式传送到编辑脚本。所以我写的是:

create foo.txt | edit

然而,这失败了 - 我得到一个打开的Notepad ++窗口,但我新创建的文件没有出现在那里。我在这里错过了什么或做错了什么?

2 个答案:

答案 0 :(得分:1)

您没有在第二批文件中读取管道。

要读取第一批中的一行输出文件名,这应该足够了:

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

否则请检查Read stdin stream in a batch file以阅读多行输入。

答案 1 :(得分:0)

edit.bat没有%1参数

你可以试试这个:

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