Travailler avec l'invite de commande

Signaler
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
30
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2011
-
Bonjour à tous,
Je me posais une question: Est - il possible de travailler avec l'invite de commande ?
Je voudrais qu'à partir de mon programme on puisse envoyer des lignes de commandes à l'invite du genre netsend, netstat...
Possible ?
Merci d'avance.

7 réponses

Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

Bonsoir,


avec la commande shell tu peux faire pas mal de chose : http://plasserre.developpez.com/v4-10.htm

par exemple pour faire un net send :  Shell(
"C:\windows\system32\net send poste texte"


_____________
 (débutant inside)
Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
Salut Marneus73,

En VB.NET, on ne peut pas controler directement l'invite de commande. Néanmoins, il est possible d'arriver à le faire en utilisant le système D.

L'astuce serait de créer un fichier bat (fichier de commande dos) et d'y stocker les commandes que tu souhaites exécuter et de lancer ensuite le fichier et cà c'est possible de le faire en VB.NET 

Un petit exemple :

<hr size="2" width="100%" />
Dim SW
As New IO.StreamWriter(
"C:\test.bat") ' Crée un fichier de commande dos
       
SW.WriteLine(
"netstat")
' Ajout de la première commande a exécuter sous l'invite de commande
SW.WriteLine(
"@ECHO OFF")
' Désactivation de l'affichage
SW.WriteLine(
"Pause")
' Attente que l'utilisateur appui sur une touche
SW.WriteLine(
"dir C:")
' Ajout d'une deuxième commande
SW.WriteLine(
"Pause")
' Attente que l'utilisateur appui sur une touche
       
SW.Close()
' On ferme le fichier

Call Shell("C:\test.bat", AppWinStyle.NormalFocus)
' On appelle le fichier

<hr size="2" width="100%" />
Si tu as des soucis, n'hésites pas

++
<hr size="2" width="100%" />Si la réponse vous convient : Réponse Acceptée 
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Slt,
je ne comprends pas bien ton code:
Shell(
"C:\windows\system32\net send poste texte")
Quand je tape ça, ça ne marche pas !
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Slt fauve,
J'y avait pansé, mais j'ai un problème avec les chemins de fichier qui ont des accents. Dans l'invite de commande ça me les remplaces par des @ !?
Y a t'il aussi un autre system D pour récupperer ce qui est écrit dans l'invite de commande.
Merci
Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
8
Salut,

Je ne suis pas d'accord avec Fauve, on peut très bien envoyer des commandes et lire le texte de retour. Voici un code qui affiche une MsgBox affichant la réponse d'une commande Ping :

Private Sub TestPing

        ' Création du process avec la ligne de commande 
        Dim p As Process = New Process
        p.StartInfo.FileName = "ping"
        p.StartInfo.Arguments = "google.fr"

        ' Paramètres permettants de lire la sortie du process
        p.StartInfo.UseShellExecute = False
        p.StartInfo.RedirectStandardOutput = True
        p.StartInfo.CreateNoWindow = True
        ' p.StartInfo.StandardOutputEncoding = New System.Text.ASCIIEncoding

        ' Lancer la commande
        p.Start()

        ' Lire la sortie
        Dim output As String = p.StandardOutput.ReadToEnd
        MsgBox(output)

End Sub

Par contre, aucun des codages du texte n'affiche la sortie correctement, je ne comprend pas
Il est bien sur possible de lire le stream de sortie de façon asynchrone.
Il est aussi possible d'injecter des commandes avec StandardInput
Messages postés
251
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
2 novembre 2010

ben "poste" et "texte" ce sont des exemples ...

"poste" c'est le nom du poste reseau à qui tu ecrits
et "texte" c'est ton texte

si tu preferes : Shell("C:\windows\system32\net send nom du poste coucou")

 
c'est juste la syntaxe d'un netsend quoi, ceci n'a rien à voir avec VB

_____________
 (débutant inside)
Messages postés
30
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
26 janvier 2011

et faire appel dans une form a une console vous en dites quoi  ? héhé oui les composants natif ca sert de temps à autre.

Necromhttp://www.membres.lycos.fr/stargatesgccenter