我的Windows窗体应用触发一个事件:
using System.Diagnostics;
string strCmdText = "'/C ping server1.example.com > C:\\Users\\myusername\\Desktop\\1\\a.txt";
Process.Start("cmd.exe", strCmdText);
执行时会生成cmd.exe,运行一会儿,不会显示输出,但是输出存在于重定向的1.txt文件中。
但是,我需要运行查询命令:
using System.Diagnostics;
string strCmdText = "'/C query user /server:server1.example.com > C:\\Users\\myusername\\Desktop\\1\\a.txt";
Process.Start("cmd.exe", strCmdText);
执行时,它会生成一个cmd.exe,但是只显示1秒钟,然后消失,并且1.txt文件中不存在输出。
是否有任何方法可以查看查询命令在消失之前的工作,例如在执行时保持打开状态?也许那里很有趣。 还是我做错了什么?也许我需要另外运行命令吗?
答案 0 :(得分:0)
这种方式:
string outputProcess = "";
string errorProcess = "";
using (Process process = new Process())
{
process.StartInfo.FileName = yourPath;
process.StartInfo.Arguments = yourArguments;
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
outputProcess = process.StandardOutput.ReadToEnd();
errorProcess = process.StandardError.ReadToEnd();
process.WaitForExit();
}
答案 1 :(得分:0)
如果您真的想以自己的身份运行代码。只需将“ CMD”替换为“ CMD / k”