我正在创建一个控制台应用程序。我想使用 > 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
写入控制台。然后,如果应用程序的用户想要使用 >
重定向标准输出,他或她就可以。
顺便说一句,即使您 try catch 并解释“>”,您也永远不会看到它,因为 CMD.EXE 已经解析了命令行并解释了如下内容:
myprog.exe > foo.txt
as “不带参数运行 myprog.exe 并将其输出重定向到 foo.txt” 传递给程序的参数列表不会包含 >
或 foo.txt
.
关于c# - 使用 > out.txt 命令 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412886/