Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将C#中文件的内容直接流式传输到args?_C# - Fatal编程技术网

如何将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
然后参数将是在命令行上传递的任何内容