2017-07-18 152 views
-1

我需要从c#程序运行命令行。我想设置命令行窗口的目录。要做到这一点,我使用下面的代码:运行命令来自C#程序的提示命令

Process.Start("cmd", @"cd C:\Users\user1\Desktop"); 

当我运行C#程序,一个命令行窗口被打开,但该目录未设置为C:\ Users \用户USER1 \桌面,这意味着命令没有执行。我究竟做错了什么?

+0

见https://stackoverflow.com/questions/5047171/passing-an-argument-to -cmd-EXE。我相信你会想要做“CMD/K的C:\用户\用户1 \桌面” – bgura

+0

命令更改目录后,你想接下来发生什么?窗口/进程保持打开状态?或者窗口/进程退出? –

+0

_“目录未设置”_ - 哪个目录未设置?您正在执行的命令将在命令的上下文中更改目录。但它不会影响启动该命令的进程的当前目录,也不会影响可能处于活动状态的任何其他命令提示符窗口的当前目录。你的问题完全不清楚你希望达到什么目的。 –

回答

0

我相信这是你正在寻找的答案。

Process.Start("cmd", @"/c cd C:\Users\user1\Desktop"); 
0

要设置工作目录,你也可以做它用ProcessStartInfo这样的:

using System; 
using System.Diagnostics; 

namespace so45176273 
{ 
    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      var startInfo = new ProcessStartInfo("cmd") 
      { 
       WorkingDirectory = @"c:\Trash", 
       Arguments = "/k" // will leave the process running until you type exit 
      }; 

      Process.Start(startInfo); 

      Console.WriteLine("Press any key to continue..."); 
      Console.ReadKey(); 
     } 
    } 
} 
+0

如何继续执行更多命令? – LogicDev