如何将C#中的文件内容直接传递给args?

时间:2012-08-06 15:23:47

标签: c#

我有一个解决方案,它读取文件名的命令行并读取其内容。我才意识到,如果我能走的话会很好。

c:\MyReader.exe < text.txt

而不是

c:\MyReader.exe text.txt

如果文件的内容被放置为args中的Main(String[] args)输入。它是可行的还是我必须解析文件?

2 个答案:

答案 0 :(得分:3)

这不会将内容放入args,而是redirect it to standard input,因此Console.Read方法会从文件中读取而不是键盘。

答案 1 :(得分:1)

正如您无疑发现的那样,重定向无效。能够完成您想要实现的功能取决于shell解释器的功能。您几乎可以肯定地编写一个可以满足您需求的批处理文件,但您也可以将其作为自己程序的一项功能,而不是依赖批处理文件。

public static Main(String[] args) {
    if (args.Length >= 2 && args[0] == "/args") {
        args = File.ReadAllText(args[1]).Split(' ');
    }
    ...
}

如果您的程序是这样启动的:

c:\MyReader.exe /args text.txt

论据将来自text.txt;如果你的程序是这样开始的:

c:\MyReader.exe param1 param2 param3

然后参数将是在命令行上传递的任何内容。