Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lancement via Shell VB d'un bat avec argument

7 réponses
Avatar
Dom
Bonjour à tous,

Je cherche à lancer un prg DOS avec un argument via
l'utilisation d'un shell VB.
Je ne me souviens plus de la syntaxe VB pour lancer qqchose ressemblant à
"CMD /C mon_Batch.bat Argument"
Une idée ?
Merci

Dom

7 réponses

Avatar
ng
Salut,

Essaye :

Call Shell(Environ$("ComSpec") & " /c ""c:monbat.bat"" argument1",
vbNormalFocus)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



Dom a écrit :

Bonjour à tous,

Je cherche à lancer un prg DOS avec un argument via
l'utilisation d'un shell VB.
Je ne me souviens plus de la syntaxe VB pour lancer qqchose
ressemblant à "CMD /C mon_Batch.bat Argument"
Une idée ?
Merci

Dom


Avatar
Dom
Merci.
Toutefois, j'ai une erreur VB qui me dit
"Erreur de compilation
Sub, Function ou Property attendue"
Qu'est ce ?
Avatar
ng
ReSalut,

Ca ne doit pas venir de là !!! Peut on voir tout ton code ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



Dom a écrit :

Merci.
Toutefois, j'ai une erreur VB qui me dit
"Erreur de compilation
Sub, Function ou Property attendue"
Qu'est ce ?


Avatar
Dom
voici:

While Dir(QSix) <> ""
Fic = Bqe & Env & "QSix" & Dir(QSix)
'Lancement du batch avec le fichier en argument

Call Shell(Environ$("ComSpec") & " /c " & avpitr & Fic, vbNormalFocus)


objFSO.DeleteFile Fic
Source2 = Bqe & Env & Dir(QSix)



Wend

avpitr est défini au départ comme string:
avpitr = "e:pelintbatche_avpitr.bat"

Fic a pour valeur une string et est une fichier texte
Avatar
Dom
Imaginons que je déclare en private la fonction ShellExecute en début de
prog.
Puis je espérer que ceci fonctionnera ?:

d$ = ShellExecute(Me.hwnd, vbNullString, ret, vbNormal, vbNullString, 1)

avec ret = (Environ$("ComSpec")) & " /c " & avpitr & " " & Fic ou avpitr est
mon batch et Fic le fichier en argument de batch.

J'ai fait un test qui aurait du m'ouvrir via notepad le fichier test.text
passé en argument mais celà ne fonctionne pas ...:
ret2 = (Environ$("ComSpec")) & " /c " & "c:winntsystem32notepad.exe" & "
" & "d:test.txt"
d$ = ShellExecute(Me.hwnd, vbNullString, ret2, vbNormal, vbNullString,
1) ---> marche pas !!!! :-(
Avatar
Dom
Rrrraaaahhhhhhhhhhhh ...........
Mon erreur venait du fait que j'ai créé en tout debut de code (qq centaines
de lignes ..) une variable Dim Shell ...
Le con !!!!
Merci à vous de votre aide

Dom
Avatar
ng
Samut,

A priori il n'y a rien ici qui pourrait provoquer cette erreur, par contre
ta mèthode de listage des fichiers ne semble pas bonne, utilises plutot ceci
:

dim strFich As String

strFich=Dir$(QSix)
Do While strFich<>""
'//Code
strFich = Dir$()
Loop

De plus il ne faut JAMAIS mais JAMAIS utiliser FSO en VB :) Préfère utiliser
les fonctions VB ou les APIs windows :

strFich=Dir$(QSix)
Do While strFich<>""
Call Kill(Fic)
strFich = Dir$()
Loop

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



Dom a écrit :

voici:

While Dir(QSix) <> ""
Fic = Bqe & Env & "QSix" & Dir(QSix)
'Lancement du batch avec le fichier en argument

Call Shell(Environ$("ComSpec") & " /c " & avpitr & Fic, vbNormalFocus)


objFSO.DeleteFile Fic
Source2 = Bqe & Env & Dir(QSix)



Wend

avpitr est défini au départ comme string:
avpitr = "e:pelintbatche_avpitr.bat"

Fic a pour valeur une string et est une fichier texte