The Console class exposes two properties that make it very simple to create command-line utilities that work as filters, exactly like the FIND and MORE utilities that are provided with the operating system. The Console.In property returns a TextReader object that reads from the standard input channel, and Console.Out returns a TextWriter object that writes to the standard output channel. See how you can use these properties to create a simple filter utility that transforms all the incoming text to uppercase:
' Read from the standard input channel until there are characters.
Do While Console.In.Peek <> -1
Dim text As String = Console.In.ReadLine
Compile the application to Upper.exe and use it as a filter from the command line in this way:
TYPE myfile.txt | UPPER > uppercase.txt
In both cases the uppercase.txt file will contain the same contents of myfile.txt but converted to uppercase.
UPPER < myfile.txt > uppercase.txt
If you need to notify errors to the console window you can use the TextWriter object returned by the Console.Error property, which is never redirected to a file: