Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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#如何使用参数读取控制台输出_C#_Console - Fatal编程技术网

C#如何使用参数读取控制台输出

C#如何使用参数读取控制台输出,c#,console,C#,Console,是否可以运行控制台应用程序并在C#中以字符串形式返回其输出内容 我希望能够在运行console应用程序时使用参数: c:\files\app.exe -a 1 -b 2 -c 3 这不是我今天读到的最清楚的内容,但我只能假设您正在生成一个进程(使用process.Start()?),并希望将其输出返回到您的程序中 如果是的话,这可能就是你想要的。例如: System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnos

是否可以运行控制台应用程序并在C#中以字符串形式返回其输出内容

我希望能够在运行console应用程序时使用参数:

c:\files\app.exe -a 1 -b 2 -c 3

这不是我今天读到的最清楚的内容,但我只能假设您正在生成一个进程(使用
process.Start()
?),并希望将其输出返回到您的程序中

如果是的话,这可能就是你想要的。例如:

System.Diagnostics.ProcessStartInfo startInfo = 
    new System.Diagnostics.ProcessStartInfo(@"c:\files\app.exe",@"-a 1 -b 2 -c 3"); 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardOutput = true; 
Process p = Process.Start(startInfo);
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

我不断从这条消息中得到错误,说新进程并没有只接受1个参数的构造函数。在启动的进程运行之前,我的应用程序无法显示其窗口。当我杀死它时,我的应用程序显示了带有捕获输出的窗口。我正在使用这段代码,就像它与另一个属性——CreateNoWindow一样。如何“正常”显示我的应用程序?@Laserson您的意思是,在进程
p
运行之前,您的应用程序无法显示其控制台窗口?看起来您的CreateNoWindow正在将自己应用于当前进程以及启动的进程?还是我完全误解了?@lc不,我有一个普通的WinForms应用程序。它启动一个控制台编码器(mencoder)。我需要得到这个编码器的输出,例如在我的表单上显示它。但直到编码器进程运行,我的表单才会出现。有可能在“实时”中获得控制台输出吗?@Laserson我能马上想到的唯一一件事是,它与上面代码所在的位置有关。例如,如果从
Form.Load
事件调用它,则该过程将在显示该表单之前启动(并与您描述的行为类似)。但是,我想得越多,就越觉得您在与UI相同的线程上运行此代码,并且它被阻止在
p.WaitForExit()
。尝试将上述内容放入报告进度的
BackgroundWorker
中,然后使用进度报告将消息发送回UI线程。