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
Gilles LAURENT [MVP]
"---DGI972---" wrote:
Bonjour,
Bonjour,
Je souhaite passer une variable issue d'un traitement dans un vbs puis la transmettre dans un batch. Comment faire ?
Une solution consiste à transmettre la variable comme argument. Le script VBScript défini la variable DAT puis la transmet au script batch via la méthode Run de l'interface WSHShell. La variable sera donc accessible dans le batch via la variable système %1. Par exemple :
--- CodeSnippet.vbs --- Set oSh=CreateObject("WScript.Shell") DAT="Hello From VBScript" oSh.Run "%comspec% /c test.cmd " & Chr(34) & DAT & Chr(34) --- CodeSnippet.vbs ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" wrote:
Bonjour,
Bonjour,
Je souhaite passer une variable issue d'un traitement dans un vbs puis
la transmettre dans un batch.
Comment faire ?
Une solution consiste à transmettre la variable comme argument. Le script
VBScript défini la variable DAT puis la transmet au script batch via la
méthode Run de l'interface WSHShell. La variable sera donc accessible dans le
batch via la variable système %1. Par exemple :
--- CodeSnippet.vbs ---
Set oSh=CreateObject("WScript.Shell")
DAT="Hello From VBScript"
oSh.Run "%comspec% /c test.cmd " & Chr(34) & DAT & Chr(34)
--- CodeSnippet.vbs ---
Je souhaite passer une variable issue d'un traitement dans un vbs puis la transmettre dans un batch. Comment faire ?
Une solution consiste à transmettre la variable comme argument. Le script VBScript défini la variable DAT puis la transmet au script batch via la méthode Run de l'interface WSHShell. La variable sera donc accessible dans le batch via la variable système %1. Par exemple :
--- CodeSnippet.vbs --- Set oSh=CreateObject("WScript.Shell") DAT="Hello From VBScript" oSh.Run "%comspec% /c test.cmd " & Chr(34) & DAT & Chr(34) --- CodeSnippet.vbs ---
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
---DGI972---
Gilles LAURENT [MVP] a écrit :
"---DGI972---" wrote:
Bonjour,
Bonjour,
Je souhaite passer une variable issue d'un traitement dans un vbs puis la transmettre dans un batch. Comment faire ?
Une solution consiste à transmettre la variable comme argument. Le script VBScript défini la variable DAT puis la transmet au script batch via la méthode Run de l'interface WSHShell. La variable sera donc accessible dans le batch via la variable système %1. Par exemple :
--- CodeSnippet.vbs --- Set oSh=CreateObject("WScript.Shell") DAT="Hello From VBScript" oSh.Run "%comspec% /c test.cmd " & Chr(34) & DAT & Chr(34) --- CodeSnippet.vbs ---
DAT=Mid(DJ,7,2)&"-"&Mid(DJ,5,2)&"-"&MID(DJ,1,4) 'donne 29-09-2008 par ex STRCMD="%COMSPEC% /c c:REPERTprog .cmd" CreateObject("WScript.Shell").run STRCMD & Chr(34) & DAT & Chr(34)
mon morceau de 0.cmd
@echo off @setlocal enabledelayedexpansion @SETLOCAL ENABLEEXTENSIONS SET CD=G REM SET DAT)-09-2008 PING 127.0.0.1 -n 3 >NUL MD C:REPERT%1 PING 127.0.0.1 -n 1 >NUL For /f "tokens=*" %%f in ('dir /s /b %CD%:%11Mare89?????????.tif') do ( copy /v /y "%%f" "C:METEOR" )
la ligne MD C:REPERT%1 et la ligne For /f "tokens=*" %%f in ('dir /s /b %CD%:%11Mare89?????????.tif') ne fait pas ce que je voudrais et si je retire le REM SET DAT)-09-2008 le 0.cmd fonctionne correctement
:|
Je suis désolé j'ai surement raté qqchose ...
Gilles LAURENT [MVP] a écrit :
"---DGI972---" wrote:
Bonjour,
Bonjour,
Je souhaite passer une variable issue d'un traitement dans un vbs puis
la transmettre dans un batch.
Comment faire ?
Une solution consiste à transmettre la variable comme argument. Le script
VBScript défini la variable DAT puis la transmet au script batch via la
méthode Run de l'interface WSHShell. La variable sera donc accessible dans le
batch via la variable système %1. Par exemple :
--- CodeSnippet.vbs ---
Set oSh=CreateObject("WScript.Shell")
DAT="Hello From VBScript"
oSh.Run "%comspec% /c test.cmd " & Chr(34) & DAT & Chr(34)
--- CodeSnippet.vbs ---
DAT=Mid(DJ,7,2)&"-"&Mid(DJ,5,2)&"-"&MID(DJ,1,4) 'donne 29-09-2008 par
ex
STRCMD="%COMSPEC% /c c:REPERTprog .cmd"
CreateObject("WScript.Shell").run STRCMD & Chr(34) & DAT & Chr(34)
mon morceau de 0.cmd
@echo off
@setlocal enabledelayedexpansion
@SETLOCAL ENABLEEXTENSIONS
SET CD=G
REM SET DAT)-09-2008
PING 127.0.0.1 -n 3 >NUL
MD C:REPERT%1
PING 127.0.0.1 -n 1 >NUL
For /f "tokens=*" %%f in ('dir /s /b %CD%:%11Mare89?????????.tif')
do (
copy /v /y "%%f" "C:METEOR"
)
la ligne
MD C:REPERT%1
et la ligne
For /f "tokens=*" %%f in ('dir /s /b %CD%:%11Mare89?????????.tif')
ne fait pas ce que je voudrais et si je retire le REM SET
DAT)-09-2008
le 0.cmd fonctionne correctement
Je souhaite passer une variable issue d'un traitement dans un vbs puis la transmettre dans un batch. Comment faire ?
Une solution consiste à transmettre la variable comme argument. Le script VBScript défini la variable DAT puis la transmet au script batch via la méthode Run de l'interface WSHShell. La variable sera donc accessible dans le batch via la variable système %1. Par exemple :
--- CodeSnippet.vbs --- Set oSh=CreateObject("WScript.Shell") DAT="Hello From VBScript" oSh.Run "%comspec% /c test.cmd " & Chr(34) & DAT & Chr(34) --- CodeSnippet.vbs ---
DAT=Mid(DJ,7,2)&"-"&Mid(DJ,5,2)&"-"&MID(DJ,1,4) 'donne 29-09-2008 par ex STRCMD="%COMSPEC% /c c:REPERTprog .cmd" CreateObject("WScript.Shell").run STRCMD & Chr(34) & DAT & Chr(34)
mon morceau de 0.cmd
@echo off @setlocal enabledelayedexpansion @SETLOCAL ENABLEEXTENSIONS SET CD=G REM SET DAT)-09-2008 PING 127.0.0.1 -n 3 >NUL MD C:REPERT%1 PING 127.0.0.1 -n 1 >NUL For /f "tokens=*" %%f in ('dir /s /b %CD%:%11Mare89?????????.tif') do ( copy /v /y "%%f" "C:METEOR" )
la ligne MD C:REPERT%1 et la ligne For /f "tokens=*" %%f in ('dir /s /b %CD%:%11Mare89?????????.tif') ne fait pas ce que je voudrais et si je retire le REM SET DAT)-09-2008 le 0.cmd fonctionne correctement
:|
Je suis désolé j'ai surement raté qqchose ...
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news: | Bonjour,
Bonsoir;
| STRCMD="%COMSPEC% /c c:REPERTprog .cmd"
Il manque un espace à la fin de la chaine pour l'argument : STRCMD="%COMSPEC% /c c:REPERTprog .cmd "
| MD C:REPERT%1
L'argument est transmis entre guillemets Il est ici nécessaire de s'en débarraser Pour cela on utilise le tilde: MD C:REPERT%~1
| %CD%:%11Mare89?????????.tif') do (
Ici également : %CD%:%~11Mare89?????????.tif') do (
| Je suis désolé j'ai surement raté qqchose ...
Tenez-nous au courant.
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.8baa7d93701fb64f.33554@NOSPAMlaposte.net
| Bonjour,
Bonsoir;
| STRCMD="%COMSPEC% /c c:REPERTprog .cmd"
Il manque un espace à la fin de la chaine pour l'argument :
STRCMD="%COMSPEC% /c c:REPERTprog .cmd "
| MD C:REPERT%1
L'argument est transmis entre guillemets
Il est ici nécessaire de s'en débarraser
Pour cela on utilise le tilde:
MD C:REPERT%~1
| %CD%:%11Mare89?????????.tif') do (
Ici également :
%CD%:%~11Mare89?????????.tif') do (
| Je suis désolé j'ai surement raté qqchose ...
Tenez-nous au courant.
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
@echo off @setlocal enabledelayedexpansion @SETLOCAL ENABLEEXTENSIONS SET CD=H rem SET DAT)-09-2008 PING 127.0.0.1 -n 3 >NUL MD C:METEOR%~1 PING 127.0.0.1 -n 1 >NUL For /f "tokens=*" %%f in ('dir /s /b %CD%:%~11Mare89?????????.tif') do ( copy /v /y "%%f" "C:METEOR"
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news: | ben non ca marche pas
Est-ce que mon exemple initial fonctionne chez vous ? Si oui alors le problème est dans votre batch. Essayez d'invoquer le batch 0.cmd avec un argument à partir de la ligne de commandes (en ayant pris soin de mettre en commentaire la ligne @echo off). Par exemple : > 0.cmd "29-09-2008"
Que se passe t-il ?
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.8ccd7d93778327d6.55474@NOSPAMlaposte.net
| ben non ca marche pas
Est-ce que mon exemple initial fonctionne chez vous ?
Si oui alors le problème est dans votre batch. Essayez d'invoquer le
batch 0.cmd avec un argument à partir de la ligne de commandes (en ayant
pris soin de mettre en commentaire la ligne @echo off). Par exemple :
> 0.cmd "29-09-2008"
Que se passe t-il ?
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news: | ben non ca marche pas
Est-ce que mon exemple initial fonctionne chez vous ? Si oui alors le problème est dans votre batch. Essayez d'invoquer le batch 0.cmd avec un argument à partir de la ligne de commandes (en ayant pris soin de mettre en commentaire la ligne @echo off). Par exemple : > 0.cmd "29-09-2008"
Que se passe t-il ?
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
---DGI972---
Gilles LAURENT [MVP] a exposé le 18/03/2009 :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
ben non ca marche pas
Est-ce que mon exemple initial fonctionne chez vous ? Si oui alors le problème est dans votre batch. Essayez d'invoquer le batch 0.cmd avec un argument à partir de la ligne de commandes (en ayant pris soin de mettre en commentaire la ligne @echo off). Par exemple : > 0.cmd "29-09-2008"
Que se passe t-il ?
oui cela fonctionne correctement en faisant: 0.cmd "29-09-2008"
Gilles LAURENT [MVP] a exposé le 18/03/2009 :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.8ccd7d93778327d6.55474@NOSPAMlaposte.net
ben non ca marche pas
Est-ce que mon exemple initial fonctionne chez vous ?
Si oui alors le problème est dans votre batch. Essayez d'invoquer le
batch 0.cmd avec un argument à partir de la ligne de commandes (en ayant
pris soin de mettre en commentaire la ligne @echo off). Par exemple :
> 0.cmd "29-09-2008"
Que se passe t-il ?
oui cela fonctionne correctement en faisant:
0.cmd "29-09-2008"
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
ben non ca marche pas
Est-ce que mon exemple initial fonctionne chez vous ? Si oui alors le problème est dans votre batch. Essayez d'invoquer le batch 0.cmd avec un argument à partir de la ligne de commandes (en ayant pris soin de mettre en commentaire la ligne @echo off). Par exemple : > 0.cmd "29-09-2008"
Que se passe t-il ?
oui cela fonctionne correctement en faisant: 0.cmd "29-09-2008"
Gilles LAURENT [MVP]
"---DGI972---" wrote:
oui cela fonctionne correctement en faisant: 0.cmd "29-09-2008"
Essayez donc maintenant avec le script VBScript ci-dessous :
Note: Le script batch 0.cmd doit se situer dans le même dossier que le script VBScript
oui le vbscript fonctionne correctement
C'est bon c'était l'espace aprés 0.cmd qui manquait.
Désolé
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news: | C'est bon c'était l'espace aprés 0.cmd qui manquait.
Je suis donc rassuré ;-) Merci pour ce retour.
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:mn.94037d93d9ffd136.33554@NOSPAMlaposte.net
| C'est bon c'était l'espace aprés 0.cmd qui manquait.
Je suis donc rassuré ;-)
Merci pour ce retour.
--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr