C#启动一些cmd命令,而其他则不

时间:2018-09-06 12:41:18

标签: c# cmd command

我的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文件中不存在输出。


是否有任何方法可以查看查询命令在消失之前的工作,例如在执行时保持打开状态?也许那里很有趣。 还是我做错了什么?也许我需要另外运行命令吗?

2 个答案:

答案 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”