我正在將批處理腳本遷移到.Net核心,我試圖從當前終端打開另一個終端並運行命令(我不需要stderr o stout)。.Net核心打開外部終端
批量只需要這個命令:start cmd /K gulp
。我試圖用.Net核心做同樣的事情,但只能找到在當前終端內運行命令的方式。
private static string Run(){
var result = "";
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = $"/c \"gulp browserSync\"";
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
using (Process process = Process.Start(startInfo))
{
result = process.StandardError.ReadToEnd();
process.WaitForExit();
}
}
catch (Exception Ex)
{
Console.WriteLine(Ex.Message);
Console.ReadKey();
}
return result;
}
我想,才能在另一端,打開更改此屬性:
startInfo.RedirectStandardOutput = false;
startInfo.RedirectStandardError = false;
startInfo.UseShellExecute = true;
但是破例:
UseShellExecute必須始終設置爲false。
究竟是什麼問題?你想打開一個新的終端,它不會正確嗎? –
我在一個終端上,我試圖打開一個新終端並運行一個命令。 – Equiman