C#中的命令行命令

时间:2012-11-01 17:43:27

标签: c#

我想从C#运行一些Windows程序。我该怎么做?从我一直在查看,它与System.Diagnostics.Process的启动方法有关

我会使用

吗?
System.Diagnostics.Process;

然后输入

start("Command to be executed");

还是我错误地看待这个问题?

C#的新手。

3 个答案:

答案 0 :(得分:2)

根据您的评论,您似乎不熟悉面向对象编程命名空间和类。让我们分解吧。

Process是一个类,是.NET框架的一部分。 Process有一组方法,其中一些方法是static方法。 Start是其中一种静态方法。为了您使用Process.Start,需要两件事:

  1. 编译器需要知道Process是什么。您可以通过将using System.Diagnostics;添加到类文件的顶部将该信息提供给编译器。这告诉编译器在System.Diagnostics命名空间中查找类,Process生活在哪里。
  2. 您需要明确告诉编译器您正在调用名为Start 的方法,该方法是流程类的一部分。您可以使用Process.Start()执行此操作。或者在您的情况下,Process.Start("Command to be executed");
  3. 有两个原因导致您不能只输入start("Command to be executed")

      带有小写“s”的
    1. start与带有大写“S”的Start不同。 C#是区分大小写的语言。
    2. 如果你没有在特定的类名前加上你的方法调用,那么编译器会在你自己的类中查找该方法,当它没有找到时,会告诉你它。

答案 1 :(得分:1)

事情是:基本上“要执行的命令”部分是您在命令提示符中键入的内容。例如:

Process.Start("C:\Programs\programFile.exe",
              "/arg1='This is an argument' -arg2=anotherArgument someOtherArgument");

程序的入口点(该文件位于“C:\ Programs \ programFile.exe”)将在其主方法中收到以下参数列表:

args[0] = "/arg1='This is an argument'"
args[1] = "-arg2=anotherArgument"
args[2] = "someOtherArgument"

这种将参数作为命令行传递的方式显然不是格式化的最佳方法,但它始终可以完成工作。

答案 2 :(得分:0)

// Start Internet Explorer. Defaults to the home page.
Process.Start("IExplore.exe");

// Display the contents of the favorites folder in the browser.
Process.Start(myFavoritesPath);

来自MSDN