通过从C#运行命令行获取空白cmd窗口

时间:2014-09-07 06:29:26

标签: c# cmd

我正在尝试从C#打开c文件夹中的命令行。

期望在命令行窗口中看到这一点:

C:>

但我得到一个空白的cmd窗口。

这是代码:

var startInfo = new System.Diagnostics.ProcessStartInfo
{
    WorkingDirectory = @"c:\",
    WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
    FileName = "cmd.exe",
    RedirectStandardInput = true,
    UseShellExecute = false
 };
 Console.ReadKey();

3 个答案:

答案 0 :(得分:2)

WaitForExit正是您要找的。

编辑:

var startInfo = new System.Diagnostics.ProcessStartInfo
{
    WorkingDirectory = @"c:\",
    WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
    FileName = "cmd.exe",
    RedirectStandardInput = true,
    UseShellExecute = false
 };
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
p.WaitForExit();

这将暂停WaitForExit之后所有语句的执行。关闭命令窗口的时间将执行WaitForExit之后的语句。

答案 1 :(得分:0)

我认为你正在寻找这个 首先,我们将为CMD.exe创建一个进程,然后传递“/ K cd \”。 “/ K”将“CMD.exe”接收参数并保持打开状态,而“cd”将把我们带到“C:/”这是您的要求

System.Diagnostics.Process.Start("CMD.exe", "/K \"cd /\"");
Console.ReadKey();

答案 2 :(得分:0)

我相信如果你在执行命令时使用/ K Argument,你应该在C:\

运行一个命令提示符
        ProcessStartInfo startinfo = new ProcessStartInfo();
        startinfo.FileName = "cmd.exe";
        startinfo.WorkingDirectory = @"C:\";
        startinfo.Arguments = "/K";
        startinfo.UseShellExecute = false;
        Process.Start(startinfo);

或者

        Process command = new Process();
        command.StartInfo.UseShellExecute = false;
        command.StartInfo.WorkingDirectory = @"C:\";
        command.StartInfo.Arguments = "/K";
        command.StartInfo.FileName = "cmd.exe";
        command.Start();

/ K参数执行cmd.exe命令并保持窗口打开:)