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

Lancer une appli DOS via un shell sous VBS

6 réponses
Avatar
Dom
Bonjour à tous,

Ds un script WSH je cherche à lancer un prg DOS avec un argument via
l'utilisation d'un shell VBS.
Comment réaliser celà. L'idée serait de lancer qqchose sous la forme "CMD /C
mon_Batch.bat Argument"
Une idée ?
Merci

Dom

6 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:40f554a5$0$31401$ ,
Dom s'est ainsi exprimé:

Bonjour à tous,

Ds un script WSH je cherche à lancer un prg DOS
Il n'y a plus de DOS sous NT ! (ou si peu)

Par contre il y a des programmes "console" (ou en ligne de commandes)

avec un argument via
l'utilisation d'un shell VBS.
Comment réaliser celà. L'idée serait de lancer qqchose sous la forme
"CMD /C mon_Batch.bat Argument"
Une idée ?


----------- couper ici -----------
Set args = Wscript.Arguments
nbargs=args.count
if nbargs<2 then
wscript.echo Paramètres manquants
wscript.quit
end if
nombatch=args(0)
param=args(1)
Set shell = WScript.CreateObject("WScript.Shell")
cmd=shell.ExpandEnvironmentStrings("%compsec%")
shell cmd & " /C " & chr(34) & nombatch & chr(34) & param,1
----------- couper ici -----------

les chr(34) représente les guillemets, nécessaires si le chemin du batch
contient des espaces

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *


Avatar
Dom
Merci JCB.
Désolé pour l'utilisation du terme DOS, terme innaproprié, je le sais, pour
décrire la console NT ...

J'ai testé le code fournit mais ce n'est pas probant ds mon propre code.
Peut être vais je maintenant être HS mais j'ai "migré" mon script VBS en
code VB6.
Pour réaliser la même manip objet de ce post, j'ai déclaré:
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long

et tenter donc d'utiliser le ShellExecute pour lancer mon batch avec
argument.
Ret est déclaré en string
avpitr est mon batch (e_avpitr.abt)
Fic est une string et est mon argument (nom d'un fichier)

Si j'écris ceci, celà peut il fonctionner ?:
ret = (Environ$("ComSpec")) & " /c " & avpitr & " " & Fic
d$ = ShellExecute(Me.hwnd, vbNullString, ret, vbNormal, vbNullString, 1)

Merci encore ...
Avatar
Laurent Jordi \(www.ezlogic.mc\)
Salut,

C'est pour un script ou pour une page web ?

@+

LJ
"Dom" a écrit dans le message de
news:40f554a5$0$31401$
Bonjour à tous,

Ds un script WSH je cherche à lancer un prg DOS avec un argument via
l'utilisation d'un shell VBS.
Comment réaliser celà. L'idée serait de lancer qqchose sous la forme "CMD
/C

mon_Batch.bat Argument"
Une idée ?
Merci

Dom




Avatar
Dom
C pour un "script", qui initialement VBS s'est transformé en VB6.
Mais le but recherché est "simple": lancer un batch avec argument via VB ...
Et pourtant .... j'y suis depuis ce matin ... en vain !
Avatar
Dom
Petite précision:

J'ai externalisé le code de JCB en fonction "Lance" de mon projet VB6.

Public Function Lance(viritr As String, Fic As String)
Set args = wscript.Arguments
nbargs = args.Count
If nbargs < 2 Then
wscript.echo "Paramètres manquants"
wscript.quit
End If
viritr = args(0)
Fic = args(1)
Set Shell = wscript.CreateObject("WScript.Shell")
cmd = Shell.ExpandEnvironmentStrings("%compsec%")
Shell cmd & " /C " & Chr(34) & viritr & Chr(34) & Fic, 1
End Function

Ds mon code VB, j'arrive jusque la fonction Lance qui se voit affectée des
bons arguments (viritr (ancien NomBatch) et Fic (ancien Arg)). Je rentre ds
la fonction mais ai aussitot l'erreur:
"Erreur de compilation: Cet argument n'est pas facultatif." avec "Shell = "
surligné.
Que se passe t il ?

Merci

Dom qui souffre ...
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