Comment excuter une commande DOS à partir d'un code VB.net

Résolu
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
- 4 mai 2009 à 14:27
 Utilisateur anonyme - 25 mars 2012 à 15:32
Bonjour,
Je voudrai donc savoir comment excuter une commande DOS à partir d'un code VB.net??jusque là j'arrive simplement à ouvrir des programmes avec la classe shell
merci de me répondre

15 réponses

mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
2
4 mai 2009 à 15:48
D'abord je vous remercie pour votre aide!
je cherche simplement à éxecuter des commandes dos à partir de vb.
Au lieu de l'écrire directement sur la ligne de commande, j'écris la commande sur vb.
quel difference entre
cmd.exe cd ..
et
cmd.exe /C cd .
1
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 mai 2009 à 14:48
Process.Start("format C:")
0
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
2
4 mai 2009 à 15:09
j'arrive simplement à ouvrir cmd de cette façon

Dim proc As New System.Diagnostics.Process()
proc.StartInfo.FileName = "cmd.exe"
'Arguments à passer à l'éxécutable à lancer
proc.StartInfo.Arguments="cd.."
proc.Start()
proc.Close()

sans pour autant que la commande("cd.." en exemple) ne soit executer
0
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
2
4 mai 2009 à 15:12
désolé pou l'illisibilité du code, le revois là plus lisible:

Dim proc As New System.Diagnostics.Process()
proc.StartInfo.FileName = "cmd.exe"
proc.StartInfo.Arguments="cd.."
proc.Start()
proc.Close()
0

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

Posez votre question
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 mai 2009 à 15:16
mais que cherches tu a faire ?

pas confondre

cmd.exe cd ..
et
cmd.exe /C cd ..
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
4 mai 2009 à 15:54
je vois toujours pas l'interet d'ecrire des commandes DOS...
rare qu'on en ai besoin sous Windows, et y'a moyen de coder ca via le Framework...

possible de lancer des commandes, de récupérer la sortie texte, etc.

bref.


la réponse est dans l'aide en ligne de cmd :

cmd /?
Démarre une nouvelle instance de l'interpréteur de commandes de Windows XP

CMD /U /Q /D /E:OFF /F:OFF /V:OFF
[/S /K chaîne]

/C Exécute la commande donnée par la chaîne de caractères puis se termine
0
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
2
4 mai 2009 à 17:04
la solution
Shell "C:\Windows\System32\cmd.exe /K ping127.0.0.1"

merci pour votre aide
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
5 mai 2009 à 09:15
/K Exécute la commande donnée par la chaîne de caractères puis reste actif

du coup, je piges pas trop le /K plutot que le /C

mais je maintiens que s'il ne s'agit que de faire un Ping... pas besoin de t'embeter avec un shell DOS
0
nourddinmazouz
Messages postés
2
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
12 août 2012

2 nov. 2010 à 12:15
nourddinmaouz
c'est possible d'ecrire
shell"ping 192.168.1.2" par example et ca marche
mais la deffirence c'est que une fois la command c'est terminer la fenetre dos se ferme
alors c'est possible par exmaple de faire
shell"ping -t 192.168.1.2" dans se ka la fenetre va resté et quand tu veux annuler appyer sur controle+c(strg ctrl + c)
merciiiiiiiiiiii;
0
CSyas
Messages postés
5
Date d'inscription
jeudi 22 mars 2012
Statut
Membre
Dernière intervention
5 juillet 2012

22 mars 2012 à 21:47
slt tt le monde je viens de lire votre conversation moi aussi je voudrais manipuler l'invite de commande a travers une interface en c# le probléme c que g pas bien compris ce qu'il faut faire en fin de compte il faut passer en argument qq chose? l'instruction
Shell "C:\Windows\System32\cmd.exe /K ping127.0.0.1" s'ecrit ou exactement ???
merci de me répondre le plus vite possible merci a tous
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
23 mars 2012 à 07:41
inutile de passer par cmd.exe
impossible de passer par Shell

un Process.Start
suffit ...
avec une lecture de la StandardOutput


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
CSyas
Messages postés
5
Date d'inscription
jeudi 22 mars 2012
Statut
Membre
Dernière intervention
5 juillet 2012

23 mars 2012 à 14:00
voila le code que j'ai essayé:
ProcessStartInfo start = new ProcessStartInfo();
// Specify exe name.
//start.RedirectStandardOutput = true;
start.RedirectStandardInput = true;
start.UseShellExecute = false;
start.FileName = @"C:\\Windows\\system32\\cmd.exe";
start.Arguments ="C:\\Windows\\System32\\cmd.exe /K dir";

// Start the process.
using (Process process = Process.Start(start))
{
process.WaitForExit();
}
lors de l'execution la commande dir s'execute mais le terminal se ferme tt de suite aprés c'est a dire que g plus droit a taper des commande comment je pourrais changer ca?
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
23 mars 2012 à 15:30
étrange demande, que cherches tu a faire, au final ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
CSyas
Messages postés
5
Date d'inscription
jeudi 22 mars 2012
Statut
Membre
Dernière intervention
5 juillet 2012

23 mars 2012 à 19:50
je vais essayer de t'expliquer par un exemple :
j'ai une interface (une simple supposons qu'elle contient qu'un bouton et un textbox ou je vais entrer la commande a exectuter sur cmd)le code que g donnée vas s'excuter quand je clique sur le bouton
supposons que je fais deux fois de suite l'entrée de "cd.." j'obtiens:
D:\GL3\visual studio .net\test\test\bin>
D:\GL3\visual studio .net\test\test\bin>

ca veux dire qu'a chaque fois le processus se lance a nouveau je cherche a le garder en execution , et manipuler le cmd directement a travers l'interface
j'espére que je me suis bien exprimé cette fois :)
0
Utilisateur anonyme
25 mars 2012 à 15:32
Bonjour,

Pour des besoins particuliers à mon boulot, je viens d'assembler des bouts de code trouvés sur le net pour "pinger" une plage d'adresses IP.
Téléchargeable SUR CE LIEN

Il s'agit d'un "multithread" et en conclusion (par exemple) on scanne 255 adresses en quelques 6 secondes, avec une option de faire un "tracert" sur les adresses valides.

Pas très bien fini, la moitié en anglais, mais fonctionnel...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0