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:
Module Module1 Sub Main() ' Read from the standard input channel until there are characters. Do While Console.In.Peek <> -1 Dim text As String = Console.In.ReadLine Console.Out.WriteLine(text.ToUpper) Loop End SubEnd Module
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
or
UPPER < myfile.txt > uppercase.txt
In both cases the uppercase.txt file will contain the same contents of myfile.txt but converted to uppercase.
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:
Console.Error.WriteLine("Syntax Error")