我知道类似的问题在这个网站上泛滥(双关语),但如果不关闭我正在运行的 .bat 文件,我就找不到让它工作。很抱歉,我在这方面不是很熟练,但我们非常感谢任何帮助。
什么有效:
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @"C:\Temp\batch.bat";
p.Start();
string output = p.StandardOutput.ReadToEnd();
string DataDate =(output.Substring(output.LastIndexOf("echo date:") + 11));
string DataID1 =(output.Substring(output.LastIndexOf("echo id1:") + 10));
string DataID2 =(output.Substring(output.LastIndexOf("echo id2:") + 10));
string DataStatus =(output.Substring(output.LastIndexOf("echo status:") + 13));
这会打开一个 batch.bat 文件,它会打印几行我可以获取到字符串的行,例如:“echo date: 15.02.2019”转到字符串 DataDate。但是我想在不关闭命令提示符的情况下自己打开命令提示符并键入新值。我正在使用一个按钮来运行上面的代码。我想我每次有新行时都要打开cmd进程并存储它?如何让进程保持活动状态并使用更新的值更新我的字符串?例如,我可以在 cmd 提示符中输入“echo date: 18.02.2019”,然后保存该值。