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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 *
Dans le message news:40f554a5$0$31401$636a15ce@news.free.fr ,
Dom <laurentdomNSPAM@free.fr> 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 Jean-Claude.Bellamy@wanadoo.fr *
JC.Bellamy@free.fr
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 *
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 ...
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 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 ...
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
Salut,
C'est pour un script ou pour une page web ?
@+
LJ
"Dom" <laurentdomNSPAM@free.fr> a écrit dans le message de
news:40f554a5$0$31401$636a15ce@news.free.fr...
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
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
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 !
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 !
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 !
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 ...
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 ?
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 ...
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
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
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