我可以从 c# 表单运行 windows 命令吗? [复制]

Posted

技术标签:

【中文标题】我可以从 c# 表单运行 windows 命令吗? [复制]【英文标题】:Can I run windows commands from a c# form? [duplicate] 【发布时间】:2015-05-06 03:55:12 【问题描述】:

我是否可以从带有升 C 的 Windows 窗体调用 Windows 命令,例如在命令提示符中?如果有,怎么做?

【问题讨论】:

你指的是什么命令?像 ping、复制、计算、记事本等? @JamesBlond 一般任何命令 好的,然后看看 Ken White 的重复链接。选择的答案包含您需要的一切。 看看这里:***.com/questions/1469764/run-command-prompt-commands 尝试 Process.Start()。如果您提供文件的字符串路径,则该文件将由默认应用程序打开。 【参考方案1】:

最简单的方法是如下图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# 表单运行 windows 命令吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 异步运行多个 PowerShell 脚本

我可以从 c# 代码运行 IloOplExec() Cplex 函数吗?

我们可以在 C# 中使用单独的线程从 Windows 应用程序打印吗?

我们可以在 Windows 中通过命令提示符运行 mysql 查询吗?

如何从命令行在 Windows 上运行 .class 文件?

任何c#应用程序都可以在linux上运行吗[重复]