Weil die CMD (oder PowerShell oder Terminal oder was auch immer) sich um die Umleitungen kümmert, nicht jedes Konsolenprogramm selbst. Letzteres weiß gar nichts von Umleitungen sondern nur von StdIn, StdOut und StdErr.
@shebang:
Werden denn selbstgeschriebene Konsolenprogramme ausgeführt? Wenn ja, dann würde ich das Konzept überdenken und die Programme entsprechend der Anforderungen anpassen. Prozesse töten sollte immer einer der letzten Wege sein.
Grüße
Dalai