2013-04-08 154 views
1

我想从我的c#应用程序在cmd上运行命令。如何从c#执行cmd命令#

我想:

string strCmdText = "ipconfig"; 
     System.Diagnostics.Process.Start("CMD.exe", strCmdText); 

结果:

cmd窗口弹出,但该命令没有做什么。

为什么?

+0

IPCONFIG仅仅是一个exe尝试'的System.Diagnostics.Process。开始('ipconfig');' – EaterOfCode 2013-04-08 12:18:15

回答

6

使用

System.Diagnostics.Process.Start("CMD.exe", "/C ipconfig"); 

如果你想有CMD打开仍在使用:

System.Diagnostics.Process.Start("CMD.exe", "/K ipconfig"); 
+0

然后如何发送未来的命令? – 2017-10-04 11:54:29

4

codeproject

public void ExecuteCommandSync(object command) 
    { 
     try 
     { 
      // create the ProcessStartInfo using "cmd" as the program to be run, 
      // and "/c " as the parameters. 
      // Incidentally, /c tells cmd that we want it to execute the command that follows, 
      // and then exit. 
     System.Diagnostics.ProcessStartInfo procStartInfo = 
      new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command); 

     // The following commands are needed to redirect the standard output. 
     // This means that it will be redirected to the Process.StandardOutput StreamReader. 
     procStartInfo.RedirectStandardOutput = true; 
     procStartInfo.UseShellExecute = false; 
     // Do not create the black window. 
     procStartInfo.CreateNoWindow = true; 
     // Now we create a process, assign its ProcessStartInfo and start it 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.StartInfo = procStartInfo; 
     proc.Start(); 
     // Get the output into a string 
     string result = proc.StandardOutput.ReadToEnd(); 
     // Display the command output. 
     Console.WriteLine(result); 
      } 
      catch (Exception objException) 
      { 
      // Log the exception 
      } 
    }