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

Crew215 9 Messages postés mardi 3 février 2009Date d'inscription 5 février 2009 Dernière intervention - 5 févr. 2009 à 09:26 - Dernière réponse : Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 févr. 2009 à 09:31
+3
Utile
voir les StandardOutput et StandardInput
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
Crew215 9 Messages postés mardi 3 février 2009Date d'inscription 5 février 2009 Dernière intervention - 5 févr. 2009 à 09:39
0
Utile
Merci de ton aide je devrai pourvoir m'en sortir à bientôt.

Hav
Commenter la réponse de Crew215
Crew215 9 Messages postés mardi 3 février 2009Date d'inscription 5 février 2009 Dernière intervention - 5 févr. 2009 à 11:01
0
Utile
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
Commenter la réponse de Crew215
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 févr. 2009 à 11:21
0
Utile
quel est ton code actuel ?
Commenter la réponse de Renfield
Crew215 9 Messages postés mardi 3 février 2009Date d'inscription 5 février 2009 Dernière intervention - 5 févr. 2009 à 12:59
0
Utile
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
Commenter la réponse de Crew215
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 févr. 2009 à 13:26
0
Utile
pourquoi passes tu par cmd.exe et que tu ne lance pas directement ta commande ?
Commenter la réponse de Renfield
Crew215 9 Messages postés mardi 3 février 2009Date d'inscription 5 février 2009 Dernière intervention - 5 févr. 2009 à 13:53
0
Utile
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
Commenter la réponse de Crew215
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 5 févr. 2009 à 14:54
0
Utile
que souhaites tu lancer ?

quelle ligne de commande ?
Commenter la réponse de Renfield

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.