Próbuję wywołać skrypt Ant z aplikacji C#. Chcę, aby okno konsoli wyskakiwało i pozostało w górze (właśnie dzwonię do wiersza poleceń, ale w końcu chcę zadzwonić do skryptu mrówkowego, który może zająć do godziny). Jest to kod, który używam, którą może różnić się od tej original:Wywołanie polecenia i pozostaw otwarte okno
public void ExecuteCommandSync(object command)
{
try
{
// create the ProcessStartInfo using "cmd" as the program to be run,
// and "/c " as the parameters.
// Incidentally, /c tells cmd that we want it to execute the command that follows,
// and then exit.
System.Diagnostics.ProcessStartInfo procStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd", "/k " + command);
// The following commands are needed to redirect the standard output.
// This means that it will be redirected to the Process.StandardOutput StreamReader.
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
// Do not create the black window.
procStartInfo.CreateNoWindow = false;
// Now we create a process, assign its ProcessStartInfo and start it
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
}
catch (Exception objException)
{
Console.WriteLine(objException);
}
}
Chcę także przekazać w maksymalnie 5 parametrów, ale teraz jestem po prostu zaniepokojony z zachowaniem okno otwarte na tyle długo, aby zobaczyć, co się dzieje, i nie jestem zainteresowany czytaniem treści wygenerowanych przez skrypt Ant. Nie chcę nikogo prosić o wykonanie mojej pracy dla mnie, ale od pewnego czasu walę głową w tę, więc każda pomoc będzie bardzo ceniona!
To działało! Byłem sfrustrowany tym przez większość dnia. Masz pomysł, jak sprawić, by działał z wieloma poleceniami? Zwłaszcza te o białej przestrzeni, takie jak: cd c: \\ users \\ – Stubbs
Polecenia ze spacjami powinny być interpretowane poprawnie jako-jest. Dla wielu poleceń; Być może będziesz musiał wysłać polecenia do pliku wsadowego lub spojrzeć na wysyłanie poleceń do StandardInputStream, nie sądzę, że możesz po prostu wysłać wszystko w jednym ciągu. –
Można również wysłać wiele parametrów takich jak to: [link] (http://stackoverflow.com/questions/5591382/how-to-execute-multiple-cammand-in-command-prompt-using-c-sharp). Zmienia to katalogi i przekazuje 4 parametry do pliku wsadowego. Może być komuś pomocna. – Stubbs