如何在c#中使用重定向(“>>”)时使用String [] args?

时间:2013-03-19 10:37:48

标签: c# debugging redirect command-line-arguments

我有一个程序test.exe,它接收参数并在特定的.txt路径中写入一些日志作为输入。 我想添加这个命令:

text.exe /r >> textFile.txt 

含义:构建项目并将日志写入textFile.txt(不存在) 我不确定它是如何工作的?是args[2] = ">>"args[3] = textFile.txt? 我怎么能用它的名字? 困惑!

编辑: 当我调试并查看当地人时,我只看到/r,但>> textFile.txt根本没有显示。 我如何从命令行获取它作为参数?

edit2:

理解它应该自动重定向,但是当我这样做时它就会失败并将我发送到一行:Console.CursorLeft = 0;意味着当我不这样做的时候我正试图用光标做些什么有一个控制台...只是.txt

谢谢!

3 个答案:

答案 0 :(得分:7)

不,命令shell将/r传递给test.exe,它会自动重定向输出以追加到textFile.txt。你的应用程序无法看到 - 至少不是简单。

如果您只是让程序写入标准输出(例如Console.WriteLine),则输出将以textFile.txt结束。

答案 1 :(得分:2)

“>>” 中命令提示符将其用作特殊命令,以指示它将输出重定向到以下文件。

您无需在程序中处理此问题;只需进行正常的Console.WriteLine()调用,输出就会被重定向。

答案 2 :(得分:0)

在命令提示符下运行应用程序时,传递参数如:

c:\>test.exe /r >> textFile.txt

命令提示符明白在>>之后只需要将参数/ r传递给我们程序的文件名是他的用法。 例如,在命令提示符下尝试运行以下命令

c:\>ipconfig

c:\>ipconfig >> text.txt
c:\>notepad.exe text.txt

你会发现第一次输出显示在屏幕上,第二次是用命令提示符本身给出的文件名写的。