如何在C#中使用更多的DOS命令

Fre*_*Cen 6 c# dos process

我在DOS中有大约7个命令,我想在我的C#程序中运行它们.我可不可以做:

System.Diagnostics.Process.Start("cmd.exe", "my more commands here");
Run Code Online (Sandbox Code Playgroud)

编辑: 我正在制作小应用程序将运行g ++.这现在是正确的吗?:

 System.Diagnostics.Process.Start("cmd.exe", "/k cd C:\\Alps\\compiler\\ /k g++ C:\\Alps\\" + project_name + "\\Debug\\Main.cpp");
Run Code Online (Sandbox Code Playgroud)

编译命令:

g++ -c C:\Alps\here_is_projectname\Debug\Main.cpp -o main.o
Run Code Online (Sandbox Code Playgroud)

Tim*_*oyd 7

是的,您可以使用"/ C"开关传入命令行:

System.Diagnostics.Process.Start("cmd.exe", "/C dir");
Run Code Online (Sandbox Code Playgroud)


Bra*_*tie 7

cmd.exe /k <command>
cmd.exe /c <command>
Run Code Online (Sandbox Code Playgroud)

都是有效的.

  • /k 将执行该命令并给你一个空提示(如果你只想执行反馈,可能不太适合你的应用程序.)
  • /c 将执行该命令并在完成后关闭窗口.

如果您要从特定目录执行命令,可以执行以下操作:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe");
p.StartInfo.Arguments = String.Format(@"/c g++ ""C:\Alps\{0}\Debug\Main.cpp""", project_name);
p.StartInfo.WorkingDirectory = @"C:\Alps\compiler";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.ErrorDialog = false;
p.Start();
Run Code Online (Sandbox Code Playgroud)