通过从C#运行命令行获得一个空白的cmd窗口

本文关键字:一个 空白 窗口 cmd 运行 命令行 | 更新日期: 2023-09-27 18:20:52

我正试图从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();

通过从C#运行命令行获得一个空白的cmd窗口

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之后的语句。

我想你在找这个首先,我们将为CMD.exe创建一个进程,然后传递"/K cd ''"。"/K"将"CMD.exe"接收参数并保持打开,而"cd''"将带我们到"C:/",这是您的要求

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

我认为,如果在执行命令时使用/K参数,则应该在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命令并保持窗口打开:)