通过执行bash文件将命令写入命令​​提示符

时间:2017-06-12 06:26:07

标签: c# plugins visual-studio-2015 vsix

我正在开发visual studio插件。作为其中的一部分,我想执行一个bash文件。此bash文件将打开命令提示符。 一旦打开命令提示符,我们就想在其上写/执行一堆命令。

我试过这样的话:

System.Diagnostics.Process process = System.Diagnostics.Process.Start("MyBash.bat");
process.WaitForExit(5000);
process.StandardInput.WriteLine("echo %PATH%");

但我可以看到,它打开命令提示符但无法在其上写入命令。 它在向它写入命令的行中抛出异常。从这个bash文件打开的命令提示符似乎有不同的进程ID。

请帮我解决。

1 个答案:

答案 0 :(得分:0)

尝试直接在批处理文件中执行:

将其插入您的批次:

  

启动cmd.exe / k"回显%PATH%"

您也可以使用

  

/ c

如果要在执行后关闭cmd

修改

    Process p = new Process();
    ProcessStartInfo info = new ProcessStartInfo();
    info.RedirectStandardInput = true;
    info.UseShellExecute = false;
    info.FileName = "mybash.bat";


    p.StartInfo = info;
    p.Start();

    using (StreamWriter sw = p.StandardInput)
    {
        if (sw.BaseStream.CanWrite)
        {
            sw.WriteLine("mysql -u root -p");
            sw.WriteLine("mypassword");
            sw.WriteLine("use mydb;");
        }
    }