如何将C#中文件的内容直接流式传输到args?
我有一个解决方案,可以读取命令行中的文件名并读取其内容。我才意识到如果我能去的话那就太好了如何将C#中文件的内容直接流式传输到args?,c#,C#,我有一个解决方案,可以读取命令行中的文件名并读取其内容。我才意识到如果我能去的话那就太好了 c:\MyReader.exe < text.txt 如果文件内容作为args输入放置在Main(String[]args)中。这是可行的还是我必须解析文件?这不会将内容放入args,而是控制台。Read方法将从文件而不是键盘读取。这不会将内容放入args,但是,Console.Read方法将从文件而不是键盘中读取。正如您毫无疑问地发现的那样,重定向将不起作用。您想要实现的功能取决于shell解释
c:\MyReader.exe < text.txt
如果文件内容作为
args
输入放置在Main(String[]args)
中。这是可行的还是我必须解析文件?这不会将内容放入args
,而是控制台。Read
方法将从文件而不是键盘读取。这不会将内容放入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
c:\MyReader.exe param1 param2 param3
参数将取自text.txt
;如果您的程序是这样启动的:
c:\MyReader.exe /args text.txt
c:\MyReader.exe param1 param2 param3
然后参数将是在命令行上传递的任何内容。正如您毫无疑问地发现的,重定向将不起作用。您想要实现的功能取决于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
c:\MyReader.exe param1 param2 param3
参数将取自text.txt
;如果您的程序是这样启动的:
c:\MyReader.exe /args text.txt
c:\MyReader.exe param1 param2 param3
然后参数将是在命令行上传递的任何内容