命令提示符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();