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

Messages postés
9
Date d'inscription
mardi 3 février 2009
Dernière intervention
5 février 2009
- - Dernière réponse : Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 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

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
3
Merci
voir les StandardOutput et StandardInput

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
9
Date d'inscription
mardi 3 février 2009
Dernière intervention
5 février 2009
0
Merci
Merci de ton aide je devrai pourvoir m'en sortir à bientôt.

Hav
Commenter la réponse de Crew215
Messages postés
9
Date d'inscription
mardi 3 février 2009
Dernière intervention
5 février 2009
0
Merci
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
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
quel est ton code actuel ?
Commenter la réponse de Renfield
Messages postés
9
Date d'inscription
mardi 3 février 2009
Dernière intervention
5 février 2009
0
Merci
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
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
pourquoi passes tu par cmd.exe et que tu ne lance pas directement ta commande ?
Commenter la réponse de Renfield
Messages postés
9
Date d'inscription
mardi 3 février 2009
Dernière intervention
5 février 2009
0
Merci
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
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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.