我有一个解决方案,它读取文件名的命令行并读取其内容。我才意识到,如果我能走的话会很好。
c:\MyReader.exe < text.txt
而不是
c:\MyReader.exe text.txt
如果文件的内容被放置为args
中的Main(String[] args)
输入。它是可行的还是我必须解析文件?
答案 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
然后参数将是在命令行上传递的任何内容。