从代码执行CMD命令

时间:2009-08-10 16:37:02

标签: c# wpf dll command-line cmd

在C#WPF中:我想执行一个CMD命令,我怎样才能以编程方式执行cmd命令?

10 个答案:

答案 0 :(得分:37)

这是一个简单的例子:

Process.Start("cmd","/C copy c:\\file.txt lpt1");

答案 1 :(得分:22)

正如其他答案所述,您可以使用:

  Process.Start("notepad somefile.txt");

然而,还有另一种方式。

您可以实例化一个Process对象并调用Start实例方法:

  Process process = new Process();
  process.StartInfo.FileName = "notepad.exe";
  process.StartInfo.WorkingDirectory = "c:\temp";
  process.StartInfo.Arguments = "somefile.txt";
  process.Start();

这样做可以让您在开始此过程之前配置更多选项。 Process对象还允许您在进程执行时检索有关进程的信息,并在进程完成时向您发出通知(通过Exited事件)。

补充:如果你想挂钩'退出'事件,不要忘记将'process.EnableRaisingEvents'设置为'true'。

答案 2 :(得分:10)

使用Process.Start

using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process.Start("example.txt");
    }
}

答案 3 :(得分:10)

如果要使用cmd启动应用程序,请使用以下代码:

string YourApplicationPath = "C:\\Program Files\\App\\MyApp.exe"   
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.WindowStyle = ProcessWindowStyle.Hidden;
processInfo.FileName = "cmd.exe";
processInfo.WorkingDirectory = Path.GetDirectoryName(YourApplicationPath);
processInfo.Arguments = "/c START " + Path.GetFileName(YourApplicationPath);
Process.Start(processInfo);

答案 4 :(得分:5)

如何使用所需命令创建批处理文件,并使用Process.Start

进行调用

dir.bat内容:

dir

然后致电:

Process.Start("dir.bat");

将调用bat文件并执行dir

答案 5 :(得分:3)

您可以在 C#中使用此功能 cmd

ProcessStartInfo proStart = new ProcessStartInfo();
Process pro = new Process();
proStart.FileName = "cmd.exe";
proStart.WorkingDirectory = @"D:\...";
string arg = "/c your_argument";
proStart.Arguments = arg;
proStart.WindowStyle = ProcessWindowStyle.Hidden;
pro.StartInfo = pro;
pro.Start();

不要忘记在参数之前写 / c !!

答案 6 :(得分:2)

Argh:D不是最快的

Process.Start("notepad C:\test.txt");

答案 7 :(得分:1)

您是否在询问如何启动命令窗口?如果是这样,您可以使用Process object ...

Process.Start("cmd");

答案 8 :(得分:0)

除了上面的答案,你还可以使用一个小的扩展方法:

public static class Extensions
{
   public static void Run(this string fileName, 
                          string workingDir=null, params string[] arguments)
    {
        using (var p = new Process())
        {
            var args = p.StartInfo;
            args.FileName = fileName;
            if (workingDir!=null) args.WorkingDirectory = workingDir;
            if (arguments != null && arguments.Any())
                args.Arguments = string.Join(" ", arguments).Trim();
            else if (fileName.ToLowerInvariant() == "explorer")
                args.Arguments = args.WorkingDirectory;
            p.Start();
        }
    }
}

并像这样使用它:

// open explorer window with given path
"Explorer".Run(path);   

// open a shell (remanins open)
"cmd".Run(path, "/K");

答案 9 :(得分:0)

您可以执行以下操作:

var command = "Put your command here";
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.WorkingDirectory = @"C:\Program Files\IIS\Microsoft Web Deploy V3";
procStartInfo.CreateNoWindow = true; //whether you want to display the command window
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
string result = proc.StandardOutput.ReadToEnd();
label1.Text = result.ToString();