2017-10-06 13 views
0

我有我的asp.net控制台应用程序中下面的代码: -试图运行多个线CMD我的asp.net控制台应用程序内部命令提出了以下错误“StandardIn尚未重定向”

var processInfo = new ProcessStartInfo("cmd.exe"); 
processInfo.CreateNoWindow = true; 
processInfo.UseShellExecute = false; 
processInfo.RedirectStandardError = true; 
processInfo.RedirectStandardOutput = true; 

var process = Process.Start(processInfo); 
process.StandardInput.WriteLine("nslookup"); 
process.StandardInput.WriteLine("set type=mx"); 
process.StandardInput.WriteLine(domainname); 

process.OutputDataReceived += (object sender, DataReceivedEventArgs e) => 
Console.WriteLine("output>>" + e.Data); 
process.BeginOutputReadLine(); 

process.ErrorDataReceived += (object sender, DataReceivedEventArgs e) => 
Console.WriteLine("error>>" + e.Data); 
process.BeginErrorReadLine(); 

process.WaitForExit(); 

Console.WriteLine("ExitCode: {0}", process.ExitCode); 
process.Close(); 

哪里我试图运行下面的命令,并获得满意的结果: -

nslookup 
set type=mx 
domainname 

但是当代码到达此行process.StandardInput.WriteLine("nslookup");我得到这个例外StandardIn has not been redirected

回答

1

错误是很好地说明了:StandardIn has not been redirected

您已在行重定向标准错误和标准输出:

processInfo.RedirectStandardError = true; 
processInfo.RedirectStandardOutput = true; 

但由于错误说你必须重定向StandardIn

你可以通过重定向stdin来实现:

processInfo.RedirectStandardInput = true; 
相关问题