使用> out.txt命令C# - c#

我正在创建一个控制台应用程序。我想使用> cmd命令,所以当用户使用我的应用程序时,他们可以指定他们希望通过> out.txt语法将输出写入到其选择的文本文件中。

我可以通过将控制台应用程序的args解析为“>”来处理此问题,然后写入文件(以下示例)。但是,有没有更优雅的方式来处理此问题?

   public void Run(string[] args)
        {



            switch (args[0])
            {
                case "/a":
                    {
                         Console.WriteLine("Hi There");
                         Console.WriteLine();
                        return;
                    }

当我输入myApplication.exe时,代码运行正常
当我输入myApplication.exe / a> out.txt时,代码没有向控制台写入任何内容,并且不确定out.txt所在的目录(如果有)?

参考方案

这不是您需要写到程序中的东西。它由CMD.EXE处理。您要做的就是通过Console.WriteConsole.WriteLine将其写入控制台。然后,如果您的应用程序用户希望使用>重定向标准输出,则可以。

附带说明一下,即使您尝试捕获并解释'>',您也永远不会看到它,因为CMD.EXE将已经解析了命令行并解释了以下内容:

myprog.exe > foo.txt

如“不带参数运行myprog.exe并将其输出重定向到foo.txt”,传递给程序的参数列表将不包含>foo.txt

45码