使用>;out.txt命令C#

使用>;out.txt命令C#,c#,C#,我正在创建一个控制台应用程序。我想使用>cmd命令,这样当用户使用我的应用程序时,他们可以指定希望通过>out.txt语法将输出写入他们选择的文本文件 我可以通过解析控制台应用程序的参数来处理'>',然后编写文件(下面的示例)。但是有没有更优雅的方法来处理这个问题呢 public void Run(string[] args) { switch (args[0]) { case "/a":

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

我可以通过解析控制台应用程序的参数来处理'>',然后编写文件(下面的示例)。但是有没有更优雅的方法来处理这个问题呢

   public void Run(string[] args)
        {



            switch (args[0])
            {
                case "/a":
                    {
                         Console.WriteLine("Hi There");
                         Console.WriteLine();
                        return;
                    }
当我输入myApplication.exe/a时,代码运行正常
当我输入myApplication.exe/a>out.txt时,代码不会向控制台写入任何内容,也不确定out.txt所在的目录(如果有)?

这不是您需要写入程序的内容;它由CMD.EXE处理。您所要做的就是通过
console.write
console.WriteLine
写入控制台。然后,如果应用程序的用户希望使用
重定向标准输出,他或她可以

顺便说一句,即使您试图捕获并解释'>',您也永远看不到它,因为CMD.EXE已经解析了命令行并解释了如下内容:

myprog.exe > foo.txt

作为“在没有参数的情况下运行myprog.exe并将其输出重定向到foo.txt”,传递到程序的参数列表将不包含
foo.txt

您不必执行任何操作-命令行将为您执行此操作。只需执行console.write,它就会工作

默认情况下,命令行将为您处理此问题。如果应用程序使用console.WriteLine(…)或任何其他写入控制台的方法写入控制台,则用户始终可以使用“>”符号将输出通过管道传输到文件。它内置于Windows命令提示符本身。

它将文件写入何处?它不适用于meIt。它将文件写入您指定的路径。如果不指定完整路径(仅指定文件名),它将被写入当前工作目录。