繁体   English   中英

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

[英]getting a blank cmd window by running command line from C#

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

您正在寻找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命令并使窗口保持打开状态:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM