J'utilise le code comme ceci:commande émise par C# ouvre une autre invite de commande
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C SomeEXE inputfile.txt";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
process.StartInfo = startInfo;
process.Start();
// Now use streams to capture the output
StreamReader outputReader = process.StandardOutput;
process.WaitForExit();
String line = outputReader.ReadToEnd();
Cela fonctionne très bien. Toutefois, la commande émise (SomeEXE) entraîne l'ouverture d'une autre invite de commande qui contient les résultats réels et attend la fermeture d'un retour chariot. Est-il possible d'obtenir cette sortie et d'émettre un retour chariot? Merci.
Je n'obtiens pas la sortie - au moins la chaîne est vide. L'invite de commande "spawned off" contient les données de sortie. La question est comment puis-je obtenir ces données. – cs0815
Oh je vois. Donnez-moi un moment pour considérer cela. –
FYI ... pourquoi lancez-vous SomeEXE via un nouveau shell de commande plutôt que directement comme cible de process.Start()? –