0
votes

Comment obtenir la fenêtre de commande d'exécution en C #

J'exécute une commande de mon application C #.

Il court bien mais parfois je reçois des erreurs. p>

Mon problème est que je ne peux pas voir quelle est l'erreur ou tout autre texte dans la fenêtre de commande . p>

Il est juste vide. p>

Entrez la description de l'image ici p>

Y a-t-il quelque chose que je peux rendre le texte apparaître Dans le temps d'exécution identique à celui qui est apparu ici? p>

Entrez la description de l'image ici p>

Voici mon code: P>

        var processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
        //processInfo.CreateNoWindow = true;
        processInfo.UseShellExecute = false;
        processInfo.RedirectStandardError = true;
        processInfo.RedirectStandardOutput = true;
        processInfo.WorkingDirectory = workingFolder;

        var process = Process.Start(processInfo);

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

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

        process.WaitForExit();

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


2 commentaires

Votre code ne lit pas le StandardOutput ou StandardError Streams


Vous n'avez pas besoin d'utiliser cmd.exe pour exécuter un processus non plus. Il suffit de passer le chemin d'accès à l'exécutable et aux arguments du constructeur processstartinfo


3 Réponses :


0
votes

Je ne suis pas un expert sur cela, mais je pense que vous pouvez écrire ce code dans un bloc try-attraper Afficher le message d'exception à l'écran à l'aide de console.writeline () < / code> commande.


1 commentaires

Cela devrait être un commentaire au mieux.



0
votes

Dans votre première capture d'écran, il y a Sélectionnez dans la barre de titre de la fenêtre cmd .
Savez-vous du fait que le programme est en pause alors?
Le SELECT se produit si vous cliquez dans la fenêtre et peut être poursuivi en appuyant sur Entrée (si je me souviens bien).
Si vous utilisez console.writeline () et la fenêtre cmd n'est pas en pause, vous devriez voir ce que vous avez écrit.


0 commentaires

0
votes

Il n'y a rien de mal à votre code, le problème est que vous exécutez votre programme dans le mauvais chemin.

Suivez ces étapes pour rechercher le chemin de votre application: p>

 votre chemin d'application p>

alors, dans le cmd.exe code> allez sur le chemin avec le groupe de CD code>.
Voici le code: p> xxx pré>

la sortie: p>

output>>hello world
output>>
error>>
ExitCode: 0


0 commentaires