使用C#,如何从批处理脚本创建的新cmd.exe运行命令?

时间:2014-02-28 20:49:07

标签: c# batch-file cmd

我有一个批处理脚本,用于设置一些环境变量,然后在当前正在执行的cmd.exe中设置一个新的cmd.exe。

批处理脚本的示例:

setlocal
set foo=bar
cmd.exe

如何启动一个调用此批处理脚本的新Process()对象,然后能够将StandardInput传递给cmd.exe的新实例?

这是我当前的代码不起作用:

ProcessStartInfo procStartInfo = new ProcessStartInfo();
procStartInfo.FileName = @"C:\path\to\test.bat";

using (Process proc = Process.Start(procStartInfo))
{
    proc.StandardInput.WriteLine("echo %foo%"); // InvalidOperationException
}

1 个答案:

答案 0 :(得分:1)

您必须使用ProcessStartInfo类并设置RedirectStandardInput标志,然后提供您将提供数据的流。