2014-02-28 19 views
3

我有一個批處理腳本,它設置了一些環境變量,然後在當前執行的cmd.exe中設置一個新的cmd.exe。使用C#,如何從由批處理腳本創建的新cmd.exe運行命令?

什麼樣的批處理腳本看起來像

例子:

setlocal 
set foo=bar 
cmd.exe 

如何啓動一個新的Process()對象調用此批處理腳本,然後能夠管StandardInput進入CMD的新實例。可執行程序?

這是我當前的代碼不工作:

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

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

回答

1

你必須使用ProcessStartInfo類並將RedirectStandardInput標誌,然後提供你會提供的數據流。

相關問題