Page 1 of 1

how to pass stdout text as command input to another program?

Posted: 12 May 2014 23:33
by jsmith
I apologize for what I'm sure to most of you will seem like a very noobish question, but

if A prints a line of text to stdout and B reads input text from stdin, then we can pass A's output to B as follows

A | B

now suppose that B expects its input to be provided in the form of command line arguments. ie:

B "this is the input"

in this case, what's a simple way to pass A's output to B?

Re: how to pass stdout text as command input to another prog

Posted: 13 May 2014 04:02
by foxidrive
Someone else may reply, but I'd like to see an actual problem so you can get the most appropriate solution.

Re: how to pass stdout text as command input to another prog

Posted: 13 May 2014 22:22
by jsmith

Code: Select all

class A
{
   public static void Main(String[] args)
   {
      Console.WriteLine("Hello World");
   }
}

class B
{
   public static void Main(String[] args)
   {
      //this is how B would pick up A's output if it were reading from stdin
      //String pipedInput = Console.ReadLine();
      //if (pipedInput != null)
      //   Console.WriteLine(pipedInput.ToUpperCase());

      //but because B expects input to be provided as a command line argument,
      //how do we pipe A's output into B's Main method?
      if (args != null && args.Length > 0)
         Console.WriteLine(args[0].ToUpperCase());
   }
}

Re: how to pass stdout text as command input to another prog

Posted: 14 May 2014 20:37
by foxidrive
It would seem that you're not talking about batch scripting, which is currently the primary focus of Dostips.

Re: how to pass stdout text as command input to another prog

Posted: 14 May 2014 22:47
by Aacini
jsmith wrote:if A prints a line of text to stdout and B reads input text from stdin, then we can pass A's output to B as follows

A | B

now suppose that B expects its input to be provided in the form of command line arguments. ie:

B "this is the input"

in this case, what's a simple way to pass A's output to B?


Code: Select all

for /F "delims=" %%a in ('A') do B "%%a"

Previous command execute A and then, with each output line from A, execute B passing the whole line as one argument enclosed in quotes.

If this is not what you want, please explain it more carefully...

Antonio