This question already has answers here:
Run Command Prompt Commands

(15个答案)


5年前关闭。




是否可以从带有C Sharp的Windows窗体中像在命令提示符中一样调用Windows命令?如果是这样,怎么办?

最佳答案

最简单的方法是执行以下操作,如here ..

Process.Start("Executable name here", "parameters here");

但是,如果要设置工作目录,捕获标准输出或错误,不创建窗口等,则可以执行以下操作。
void StartNewProcess(string processName, string parameters, string startDir)
{
    var proc = new Process();
    var args = new ProcessStartInfo
    {
        FileName = processName,
        Arguments = parameters,
        WorkingDirectory = startDir,
        CreateNoWindow = true,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true
    };

    proc = Process.Start(args);
    proc.ErrorDataReceived += p_DataReceived;
    proc.OutputDataReceived += p_DataReceived;
    proc.BeginErrorReadLine();
    proc.BeginOutputReadLine();
    proc.WaitForExit();
}

然后,您可以使用类似这样的方法处理输出。
void p_DataReceived(object sender, DataReceivedEventArgs e)
{
   if (e.Data != null && e.Data.Length > 0) Console.WriteLine(e.Data);
}

调用示例
void button1_Click(object sender, EventArgs e)
{
    //Input params: Executable name, parameters, start directory
    StartNewProcess("cmd.exe", "/C dir", "C:\\");
}

关于c# - 我可以从C#窗体运行Windows命令吗? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28866687/

10-09 17:58
查看更多