OVH Cloud OVH Cloud

call shell

4 réponses
Avatar
Macgiver
Bonjour a tous, j'essai de faire une commande call shell en vba avec
plusieurs paramètres mais ça ne fonctionne pas. Voici ma commande :
dim stAppName as String
dim test2 as Variant
dim prog as Variant

test2 = Chr(34) & " cd\bd_mrc " & Chr(34)
prog = Chr(34) & " dir " & Chr(34)

stAppName = "c:\windows\system32\cmd.exe /K " & " " & test2 & " " & prog
Call Shell(stAppName, 1)

mon test consiste a ouvrir une fenetre dos, me déplacer dans un dossier et
de faire un dir dans cette même fenêtre dos mais ça ne marche pas. Si
j'essais avec un parametre ça fonctionne mais dès que j'en met 2 plus rien
ne fonctionne, j'obtiens une erreur de syntaxe.

pouvez-vous m'Aider svp
merci

4 réponses

Avatar
Michel_D
Bonjour,

"Macgiver" a écrit dans le message de news:
Bonjour a tous, j'essai de faire une commande call shell en vba avec
plusieurs paramètres mais ça ne fonctionne pas. Voici ma commande :
dim stAppName as String
dim test2 as Variant
dim prog as Variant

test2 = Chr(34) & " cdbd_mrc " & Chr(34)
prog = Chr(34) & " dir " & Chr(34)

stAppName = "c:windowssystem32cmd.exe /K " & " " & test2 & " " & prog
Call Shell(stAppName, 1)

mon test consiste a ouvrir une fenetre dos, me déplacer dans un dossier et
de faire un dir dans cette même fenêtre dos mais ça ne marche pas. Si
j'essais avec un parametre ça fonctionne mais dès que j'en met 2 plus rien
ne fonctionne, j'obtiens une erreur de syntaxe.

pouvez-vous m'Aider svp
merci


dim stAppName as String
stAppName = "cmd.exe /K cd bd_mrc & dir"
Call Shell(stAppName, 1)

Ou

dim stAppName as String
stAppName = "cmd.exe /K dir bd_mrc"
Call Shell(stAppName, 1)

Avatar
Macgiver
merci ça fonctionne, maintenant si je veux lancer une commande dos avec des
paramètre dans cette commande dois-je mettre des " " ou utiliser une autre
syntaxe. par exemple faire un rename ancienfichier nouveaufichier comment
dois-je m'y prendre? puis-je me déclarer une variable pour ancienfichier et
nouveaufichier et ensuite appeler ces variable dans mon stAppName??

merci


"Michel_D" a écrit dans le message de
news: fn5233$a37$
Bonjour,

"Macgiver" a écrit dans le message de
news:
Bonjour a tous, j'essai de faire une commande call shell en vba avec
plusieurs paramètres mais ça ne fonctionne pas. Voici ma commande :
dim stAppName as String
dim test2 as Variant
dim prog as Variant

test2 = Chr(34) & " cdbd_mrc " & Chr(34)
prog = Chr(34) & " dir " & Chr(34)

stAppName = "c:windowssystem32cmd.exe /K " & " " & test2 & " " & prog
Call Shell(stAppName, 1)

mon test consiste a ouvrir une fenetre dos, me déplacer dans un dossier
et
de faire un dir dans cette même fenêtre dos mais ça ne marche pas. Si
j'essais avec un parametre ça fonctionne mais dès que j'en met 2 plus
rien
ne fonctionne, j'obtiens une erreur de syntaxe.

pouvez-vous m'Aider svp
merci


dim stAppName as String
stAppName = "cmd.exe /K cd bd_mrc & dir"
Call Shell(stAppName, 1)

Ou

dim stAppName as String
stAppName = "cmd.exe /K dir bd_mrc"
Call Shell(stAppName, 1)




Avatar
Michel_D
merci ça fonctionne, maintenant si je veux lancer une commande dos avec des
paramètre dans cette commande dois-je mettre des " " ou utiliser une autre
syntaxe. par exemple faire un rename ancienfichier nouveaufichier comment
dois-je m'y prendre? puis-je me déclarer une variable pour ancienfichier et
nouveaufichier et ensuite appeler ces variable dans mon stAppName??

merci


dim stAppName as String
dim ancienfichier as String
dim nouveaufichier as String

ancienfichier = "ancienfichier.ext"
nouveaufichier = "nouveaufichier.ext"
stAppName = "cmd.exe /K ren " & ancienfichier & " " & nouveaufichier
Call Shell(stAppName, 1)

PS:et pour avoir l'aide sur Rename, faire Ren /?

Avatar
Michel_D
merci ça fonctionne, maintenant si je veux lancer une commande dos
avec des paramètre dans cette commande dois-je mettre des " " ou
utiliser une autre syntaxe. par exemple faire un rename ancienfichier
nouveaufichier comment dois-je m'y prendre? puis-je me déclarer une
variable pour ancienfichier et nouveaufichier et ensuite appeler ces
variable dans mon stAppName??

merci


dim stAppName as String
dim ancienfichier as String
dim nouveaufichier as String

ancienfichier = "ancienfichier.ext"
nouveaufichier = "nouveaufichier.ext"
stAppName = "cmd.exe /K ren " & ancienfichier & " " & nouveaufichier
Call Shell(stAppName, 1)

PS:et pour avoir l'aide sur Rename, faire Ren /?



J'ai répondu un peu vite car si c'est pour renommer un fichier, il
serait préférable d'utiliser l'objet Scripting.FileSystemObject.