C#启动一些cmd命令,但其他命令没有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#启动一些cmd命令,但其他命令没有相关的知识,希望对你有一定的参考价值。

我的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文件中。


是否有任何方法可以查看查询命令在消失之前执行的操作,例如在执行时保持打开状态?也许是有趣的东西。或者,我做错了什么?也许我需要运行命令呢?

答案

这条路:

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();
}
另一答案

如果你真的想要运行你的代码。只需将“CMD”替换为“CMD / k”

以上是关于C#启动一些cmd命令,但其他命令没有的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QProcess 中使用 cmd.exe 命令

Windows下Nginx的启动停止等基本命令

C语言:如何在cmd命令窗口上玩贪吃蛇游戏

C# 程序不会在其他计算机上启动。 OleDB 命令中的错误

win7下给右键菜单添加启动cmd命令

linux下关于adb命令的一些知识