Windows 中的管道
Posted
技术标签:
【中文标题】Windows 中的管道【英文标题】:Piping in Windows 【发布时间】:2017-03-13 15:33:59 【问题描述】:我有一个控制台来控制设备驱动程序。这个工具允许我输入数字和设备的更改参数。这是在Windows系统上执行的。为了不手动输入数字,我将这些数字传递给可执行文件,就像这样..
cd %tool_path%
(
echo 1
echo 2
echo 3
)myconsole.exe
这是我的问题,有没有办法在这些回声之间设置延迟?如果我能读取输出会更好,这样我就可以根据输出发送不同的数字。
我的想法是用 C 或 C++ 编写一个简短的程序,并在其中处理这些延迟。但我真的找不到这方面的例子。这是我发现的。
https://msdn.microsoft.com/de-de/library/windows/desktop/ms682499(v=vs.85).aspx
但在这个例子中,我不知道在哪里可以输入myconsole.exe
。
我还查看了命名管道,但它们似乎不适合这项任务。
【问题讨论】:
【参考方案1】:您应该看看名为 expect
的 Unix 工具 - ActiveState 有一个 Windows 版本。
基本上,您可以执行以下操作:
send "Hello\r\n"
sleep 1
send "Something\r\n"
expect
"> "
"$ "
if $a == "soup"
puts "You have soup!"
else
puts "No soup for you!"
here 和整个网络都有示例 - 查找 Tcl/expect tutorials
。
【讨论】:
以上是关于Windows 中的管道的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Windows 和 Linux 的 Go 中的命名管道
从底层的角度来看,Windows 中的命名管道和远程过程调用 (RPC) 有啥区别?