我正在开发visual studio插件。作为其中的一部分,我想执行一个bash文件。此bash文件将打开命令提示符。 一旦打开命令提示符,我们就想在其上写/执行一堆命令。
我试过这样的话:
System.Diagnostics.Process process = System.Diagnostics.Process.Start("MyBash.bat");
process.WaitForExit(5000);
process.StandardInput.WriteLine("echo %PATH%");
但我可以看到,它打开命令提示符但无法在其上写入命令。 它在向它写入命令的行中抛出异常。从这个bash文件打开的命令提示符似乎有不同的进程ID。
请帮我解决。
答案 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;");
}
}