如何使用pipe道将一个命令的输出redirect到另一个命令的input?

我有一个程序发送文本到LED的标志。

prismcom.exe

要使用该程序发送“你好”:

prismcom.exe usb Hello 

现在,我希望使用一个名为“温度”的命令程序。

 temperature 

假设程序给你的电脑温度。

 Your computer is 100 degrees Fahrenheit. 

现在,我希望将温度的输出写入prismcom.exe:

 temperature | prismcom.exe usb 

这似乎并不奏效。

是的,我已经找了二十分钟以上的解决scheme。 在任何情况下,它们都是kludges / hacks或除了Windows命令行之外的解决scheme。

我将不胜感激方向,如何将输出从温度prismcom。

谢谢!

编辑:Prismcom有两个参数。 第一个将永远是'usb'。 之后的任何内容都会显示在标志上。

Solutions Collecting From Web of "如何使用pipe道将一个命令的输出redirect到另一个命令的input?"

尝试这个。 把它拷贝到一个批处理文件中 – 比如send.bat – 然后简单地运行send.bat把温度程序发送给prismcom程序。

 temperature.exe > msg.txt set /p msg= < msg.txt prismcom.exe usb "%msg%" 

这应该工作:

 for /F "tokens=*" %i in ('temperature') do prismcom.exe usb %i 

如果在一个批处理文件中运行,则需要使用%%i而不仅仅是%i (在两个地方)。

您也可以使用PowerShell在Cmd.exe命令行上运行完全相同的命令。 我会用简单的方法

 C:\>PowerShell -Command "temperature | prismcom.exe usb" 

请阅读了解Windows PowerShell管道

你也可以在命令行键入C:\>PowerShell ,它会立即把你放在PS C:\>模式下,你可以直接开始写PS。