I have a program which sends text to an LED sign.
prismcom.exe
To use the program to send "Hello":
prismcom.exe usb Hello
Now, I wish to, for example use a command program called Temperature.
temperature
Let's say the program gives your computer's temperature.
Your computer is 100 degrees Fahrenheit.
Now, I wish to write the output of temperature to prismcom.exe:
temperature | prismcom.exe usb
This does not seem to work.
Yes, I've looked for a solution to this for more than twenty minutes. In all cases, they are either kludges/hacks or a solution for something besides the Windows command line.
I would appreciate direction as to how I would pipe the output from temperature to prismcom.
Thanks!
Edit: Prismcom has two arguments. The first will always be 'usb'. Anything that comes after that will be displayed on the sign.
This question is related to
windows
pipe
command-prompt
This should work:
for /F "tokens=*" %i in ('temperature') do prismcom.exe usb %i
If running in a batch file, you need to use %%i
instead of just %i
(in both places).
Not sure if you are coding these programs, but this is a simple example of how you'd do it.
program1.c
#include <stdio.h>
int main (int argc, char * argv[] ) {
printf("%s", argv[1]);
return 0;
}
rgx.cpp
#include <cstdio>
#include <regex>
#include <iostream>
using namespace std;
int main (int argc, char * argv[] ) {
char input[200];
fgets(input,200,stdin);
string s(input)
smatch m;
string reg_exp(argv[1]);
regex e(reg_exp);
while (regex_search (s,m,e)) {
for (auto x:m) cout << x << " ";
cout << endl;
s = m.suffix().str();
}
return 0;
}
Compile both then run program1.exe "this subject has a submarine as a subsequence" | rgx.exe "\b(sub)([^ ]*)"
The |
operator simply redirects the output of program1's printf
operation from the stdout
stream to the stdin
stream whereby it's sitting there waiting for rgx.exe to pick up.
You can also run exactly same command at Cmd.exe command-line using PowerShell. I'd go with this approach for simplicity...
C:\>PowerShell -Command "temperature | prismcom.exe usb"
Please read up on Understanding the Windows PowerShell Pipeline
You can also type in C:\>PowerShell
at the command-line and it'll put you in PS C:\>
mode instanctly, where you can directly start writing PS.
Source: Stackoverflow.com