【问题标题】:how to use String[] args when using re-direction (">>") in c#?在c#中使用重定向(“>>”)时如何使用String [] args?
【发布时间】:2013-03-07 23:43:16
【问题描述】:

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

text.exe /r >> textFile.txt 

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

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

编辑2:

知道它应该自动重定向,但是当我这样做时它只是失败并将我发送到一行:Console.CursorLeft = 0; 意思是当我没有光标时我正在尝试用光标做某事控制台...只是.txt

谢谢!

【问题讨论】:

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


    【解决方案1】:

    不,命令外壳只会/r 传递给test.exe,它会自动将输出重定向到附加到textFile.txt。您的应用程序看不到这一点 - 至少不是简单的。

    如果您只是让您的程序写入标准输出(例如使用Console.WriteLine),那么该输出将在textFile.txt 中结束。

    【讨论】:

      【解决方案2】:

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

      你不需要在你的程序中处理这个;只需进行正常的Console.WriteLine() 调用,输出就会被重定向。

      【讨论】:

        【解决方案3】:

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

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

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

        c:\>ipconfig
        

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

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

        【讨论】:

          猜你喜欢
          • 2023-03-17
          • 1970-01-01
          • 2014-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-21
          相关资源
          最近更新 更多