Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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#_.net - Fatal编程技术网

命令提示符c#

命令提示符c#,c#,.net,C#,.net,可能重复: 我知道如何执行这样的操作: SomeEXE inputfile.txt 通过C#在命令提示中 我遇到的问题是,SomeEXE会打开另一个命令提示符,在那里写入给定的inputfile.txt输出 通常是否有可能获得这些输出?谢谢 这是我目前的代码: System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo

可能重复:

我知道如何执行这样的操作:

SomeEXE inputfile.txt
通过C#在命令提示中

我遇到的问题是,SomeEXE会打开另一个命令提示符,在那里写入给定的inputfile.txt输出

通常是否有可能获得这些输出?谢谢

这是我目前的代码:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C SomeEXE inputfile.txt";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;

process.StartInfo = startInfo;
process.Start();

// Now use streams to capture the output
StreamReader outputReader = process.StandardOutput;

process.WaitForExit();

String line = outputReader.ReadToEnd();
现在,您可以根据需要读取
outputStream

我猜这就是你的意思。还有,这是我们网站上的文件


此外,如果您知道生成的文件的路径(假设
SomeEXE
写入了另一个文件),则可以在执行
SomeEXE
后使用访问其内容(请记住等待,否则
SomeEXE
可能仍然有一个文件句柄,使其难以读取).

看一看@Dan-o更像是@wraith808:那也行:)@Steve B我没有做错任何事。我只是想知道这是否可能。这不起作用,因为该命令会打开另一个命令提示符,在那里它也会写入输出(没有输出文件)。此外,另一个命令提示符等待输入(回车)。因此第一个应用程序(由
进程启动)启动另一个窗口,执行另一个应用程序,这正是您真正想要的输出。我想我在最初的问题中已经说得很清楚了-如果不是的话,对不起(-:
ProcessStartInfo processStartInfo = new processStartInfo("SomeEXE", "inputfile.txt");
processStartInfo.UseShellExecute = false;
processStartInfo.ErrorDialog = false;

// Here is where you grab the output:
processStartInfo.RedirectStandardOutput = true;

Process process = new Process {
  StartInfo = processStartInfo
};
process.Start();

// Now use streams to capture the output
StreamReader outputReader = process.StandardOutput;

process.WaitForExit();