我有一个解决方案,可以读取文件名的命令行并读取其内容。我才意识到如果我能去就好了
c:\MyReader.exe < text.txt
代替
c:\MyReader.exe text.txt
如果文件的内容作为args
输入放置在Main(String[] args)
. 它是可行的还是我必须解析文件?
我有一个解决方案,可以读取文件名的命令行并读取其内容。我才意识到如果我能去就好了
c:\MyReader.exe < text.txt
代替
c:\MyReader.exe text.txt
如果文件的内容作为args
输入放置在Main(String[] args)
. 它是可行的还是我必须解析文件?
这不会将内容放入args
中,而是将其重定向到标准输入,以便Console.Read
方法从文件而不是键盘读取。
正如您无疑发现的那样,重定向是行不通的。做你想要达到的目标的能力取决于你的 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
那么参数将是命令行上传递的任何内容。