Comment excuter une commande DOS à partir d'un code VB.net [Résolu]

mokh7 31 Messages postés dimanche 10 février 2008Date d'inscription 4 mai 2009 Dernière intervention - 4 mai 2009 à 14:27 - Dernière réponse :  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
Afficher la suite 

15 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscriptionModérateurStatut 18 janvier 2017 Dernière intervention - 4 mai 2009 à 14:48
0
Utile
Process.Start("format C:")
Commenter la réponse de Renfield
mokh7 31 Messages postés dimanche 10 février 2008Date d'inscription 4 mai 2009 Dernière intervention - 4 mai 2009 à 15:09
0
Utile
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
Commenter la réponse de mokh7
mokh7 31 Messages postés dimanche 10 février 2008Date d'inscription 4 mai 2009 Dernière intervention - 4 mai 2009 à 15:12
0
Utile
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()
Commenter la réponse de mokh7
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscriptionModérateurStatut 18 janvier 2017 Dernière intervention - 4 mai 2009 à 15:16
0
Utile
mais que cherches tu a faire ?

pas confondre

cmd.exe cd ..
et
cmd.exe /C cd ..
Commenter la réponse de Renfield
mokh7 31 Messages postés dimanche 10 février 2008Date d'inscription 4 mai 2009 Dernière intervention - 4 mai 2009 à 15:48
0
Utile
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 .
Commenter la réponse de mokh7
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscriptionModérateurStatut 18 janvier 2017 Dernière intervention - 4 mai 2009 à 15:54
0
Utile
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
Commenter la réponse de Renfield
mokh7 31 Messages postés dimanche 10 février 2008Date d'inscription 4 mai 2009 Dernière intervention - 4 mai 2009 à 17:04
0
Utile
la solution
Shell "C:\Windows\System32\cmd.exe /K ping127.0.0.1"

merci pour votre aide
Commenter la réponse de mokh7
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscriptionModérateurStatut 18 janvier 2017 Dernière intervention - 5 mai 2009 à 09:15
0
Utile
/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
Commenter la réponse de Renfield
nourddinmazouz 2 Messages postés lundi 31 mars 2008Date d'inscription 12 août 2012 Dernière intervention - 2 nov. 2010 à 12:15
0
Utile
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;
Commenter la réponse de nourddinmazouz
CSyas 5 Messages postés jeudi 22 mars 2012Date d'inscription 5 juillet 2012 Dernière intervention - 22 mars 2012 à 21:47
0
Utile
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
Commenter la réponse de CSyas
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscriptionModérateurStatut 18 janvier 2017 Dernière intervention - 23 mars 2012 à 07:41
0
Utile
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
Commenter la réponse de Renfield
CSyas 5 Messages postés jeudi 22 mars 2012Date d'inscription 5 juillet 2012 Dernière intervention - 23 mars 2012 à 14:00
0
Utile
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?
Commenter la réponse de CSyas
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscriptionModérateurStatut 18 janvier 2017 Dernière intervention - 23 mars 2012 à 15:30
0
Utile
étrange demande, que cherches tu a faire, au final ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
CSyas 5 Messages postés jeudi 22 mars 2012Date d'inscription 5 juillet 2012 Dernière intervention - 23 mars 2012 à 19:50
0
Utile
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 :)
Commenter la réponse de CSyas
Utilisateur anonyme - 25 mars 2012 à 15:32
0
Utile
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
Commenter la réponse de Utilisateur anonyme

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.