Exécuter et récupérer la trace de l'invite de commande cmd.exe avec VB.NET

Résolu
Crew215 Messages postés 9 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 5 février 2009 - 5 févr. 2009 à 09:26
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 5 févr. 2009 à 14:54
Bonjour à tous,

Environnement: XP SP2
IDE: Visual Studio 2008 / Framework 3.5 / VB.NET

Je développe une application , qui lance dynamiquement la compilation des solutions de notre entreprise en fonction d'un résultat que j'obtiens à partir d'une commande exécutée dans l'invite de commande sur le gestionnaire de source Perforce.

Je sais démarrer un processus et donc afficher la fenêtre d'invite de commande, et aussi la fermer.
Par contre, je ne sais pas comment écrire ma commande dans l'invite et comment récupérer le résultat de l'exécution de ma commande pour qu'il soit traiter par mon application.

Merci d'avance de votre aide précieuse.

Hav

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 févr. 2009 à 09:31
voir les StandardOutput et StandardInput
3
Crew215 Messages postés 9 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 5 février 2009
5 févr. 2009 à 09:39
Merci de ton aide je devrai pourvoir m'en sortir à bientôt.

Hav
0
Crew215 Messages postés 9 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 5 février 2009
5 févr. 2009 à 11:01
Alors pour faire court, je parviens bien à récupérer le résultat de ma fenêtre d'invite de commande, mais je ne parviens pas à insérer de commande.
Lorsque j'essaie d'intervenir sur StandardInput je n'y arrive pas parce que cette propriété est en lecture Seule. Comment faire pour dire en gros :

1.Ouvre l'invite de commande
2.Insère une commande dans l'invite
3.Exécute cette commande
4.Récupère le résultat

J'arrive à faire les étapes 1 et 4, mais les 2 et 3 ...

Merci d'avance

Hav
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 févr. 2009 à 11:21
quel est ton code actuel ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Crew215 Messages postés 9 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 5 février 2009
5 févr. 2009 à 12:59
Mon code est le suivant:    

Function GetTraceOutput() As String
        ' Déclaration de mon Processus
        Dim monProcess As Diagnostics.Process
        monProcess  = New Diagnostics.Process
        ' L'exécutable est l'invite de commande
        monProcess .StartInfo.FileName = "cmd.exe"
        ' L'invite de commande doit s'ouvrir dans une nouvelle fenêtre
        monProcess .StartInfo.CreateNoWindow = True
        ' Ouverture de l'invite de commande
        monProcess .Start()

        /// Ici je n'arrive pas à écrire le code pour écrire ma commande dans l'invite de commande, et l'exécuter

        ' Retourne la trace complète
        Dim maChaineDeSortie As String = String.Empty
        maChaineDeSortie = monProcess .StandardOutput.ReadToEnd
        Return maChaineDeSortie
        ' Libère les ressources du Process
        monProcess.Close()
End Function

Merci d'avance de ton aide

Hav
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 févr. 2009 à 13:26
pourquoi passes tu par cmd.exe et que tu ne lance pas directement ta commande ?
0
Crew215 Messages postés 9 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 5 février 2009
5 févr. 2009 à 13:53
Hélas, ce n'est pas par choix, je suis néophyte dans le domaine et je n'ai su faire que comme ca.
J'imagine bien qu'en fait c'est pas bien compliqué ce queje veux faire !

Hav
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 févr. 2009 à 14:54
que souhaites tu lancer ?

quelle ligne de commande ?
0
Rejoignez-nous