我有一个批处理脚本,用于设置一些环境变量,然后在当前正在执行的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
}
答案 0 :(得分:1)
您必须使用ProcessStartInfo
类并设置RedirectStandardInput
标志,然后提供您将提供数据的流。