我一直在搞乱.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 ++窗口,但我新创建的文件没有出现在那里。我在这里错过了什么或做错了什么?
答案 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