Lon*_*ner 5 windows pipeline batch-file
请参阅保存在名为 的文件中的此脚本foo.cmd。
@echo off
more +5
Run Code Online (Sandbox Code Playgroud)
现在可以按这种方式使用该脚本。
dir C:\Windows | foo
Run Code Online (Sandbox Code Playgroud)
它从第 6 行开始显示输出,一次一屏(即作为寻呼机)。当前的命令提示符将保持阻塞状态,直到我退出more。
现在我将脚本修改如下,以便更多的输出显示在单独的窗口中。
@echo off
start "" more +5
Run Code Online (Sandbox Code Playgroud)
现在,如果我运行以下命令,则会正常启动一个新窗口,但其中不会显示任何输出。
dir C:\Windows | foo
Run Code Online (Sandbox Code Playgroud)
看来该命令没有接收dir到我通过管道输入的命令的输出。foo.cmdstart
我该如何确保通过管道传输到命令标准输入的任何数据都start传递到正在调用的程序start(more在本例中)?
我认为不可能通过管道进入另一个窗口。您的父窗口中的 START 命令正在接收管道输入。START 命令忽略输入。您希望新窗口中的 MORE 命令接收输入。
我相信实现您的目标的唯一方法是使用临时文件:
@echo off
set "file=%temp%\%~nx0.temp"
findstr "^" >"%file%"
start "" cmd /c more +5 ^<"%file%" ^& del "%file%" ^& pause
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1701 次 |
| 最近记录: |