在代码中执行CMD命令

问题描述:

在C#中WPF:我想要执行CMD命令,我该如何以编程方式执行cmd命令?在代码中执行CMD命令

+0

我对c,C++或c#不太了解,但是我建议编程它将代码写入批处理文件,运行批处理文件,然后删除批处理文件。 – 2017-03-11 03:04:54

你问如何调出一个命令窗口?如果是这样,你可以使用Process object ...

Process.Start("cmd"); 

使用Process.Start

using System.Diagnostics; 

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

哎呀:D不是最快

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

这里有一个简单的例子:

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

我试图,但第二个参数,参数并没有真的被传递到命令窗口,至少不是在Windows 8.1中 – William 2016-01-21 21:45:55

+0

@William我在Windows 10中测试了它,它工作正常。 – 2016-08-02 04:52:23

+0

@MahdiRafatjah我在Windows 7中测试了它,它也不起作用... idk ... – 2017-03-22 15:56:46

H嗷嗷你创造你想要的命令的批处理文件,并使用的Process.Start称之为

dir.bat内容:

dir 

然后调用:

Process.Start("dir.bat"); 

将调用蝙蝠文件并执行目录

+0

好主意!我做了Process.Start(“test.bat”),但弹出一个错误提示“在System.dll中发生了'System.ComponentModel.Win32Exception'类型的未处理异常”。有任何想法吗? – Jake 2009-08-10 18:31:27

+1

哦nvm,修好了。非常感谢Carlo。真是个好主意,帮了很大忙。 – Jake 2009-08-10 18:34:30

+0

没问题,很高兴我能帮忙!不要忘记标记这是正确的答案。 – Carlo 2009-08-10 18:59:50

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

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

但是,还有另一种方法。

您可以实例的Process对象,并调用启动实例方法:

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'。

,如果你想用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(); 

不要忘了写:

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); 

你可以使用这个在C#工作CMD/c之前论点 !!

+0

“pro.StartInfo = pro;”应该是“pro.StartInfo = proStart;”是? – amalgamate 2017-11-16 17:49:10