devxlogo

Create a command-line filter utility

Create a command-line filter utility

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  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")

devx-admin

Share the Post: