Précédent   Forum des professionnels en informatique > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2012, 15h59   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Par défaut passage de variable issu d'un vbs lors d'un cscript

Bonjour à tous
je suis débutant dans le langage VB

J'ai créé un script vbs pour me permettre de vérifier l'existance d'un share sur un serveur distant.
Si le share n'existe pas , je fait appel à un second vbs (récupéré sur le net) pour créer le partage sur la machine distante.

Dans mon premier vbs, j'ai défini diférrente variable concernant le nom du serveur distant, le nom du partage ...
Code :
1
2
3
4
5
sharename = toto
sharepath = G:\users\" & sharename
sharetype = DISK
sharedesc = "Partage pour" & " "& sharename 
shareserver = nomdnsduserver
Mon problème se situe lors du lancement du second vbs via cscript:
Code :
shell.run "cscript c:\createshare.vbs /C /N sharename /P sharepath /T sharetype /V sharedesc  /S shareserver /O sharelog"
Les différents paramétres passés dans le cscript ne sont pas remplacés par la valeur réelle de la variable. Mais sont interprétés vraiement comme elles sont écrite (sharename,sharepath...) et non (toto, G:\users\" & sharename..., DISK...)

Comment je peux faire pour que le cscript récupére lors de son lancement les donnnés et non les variables
Merci
benzurebebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 17h49   #2
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 2 934
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 56
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 2 934
Points : 4 150
Points : 4 150
Envoyer un message via MSN à ProgElecT
Salut

Comme tu peux le voire, aprés avoir mis les balises CODE, on voit tout de suite qu'il y a un problème de guillemets.
Code :
1
2
3
4
5
sharename = toto
sharepath = "G:\users\" & sharename
sharetype = DISK
sharedesc = "Partage pour " & sharename 
shareserver = nomdnsduserver
mais peut être ne s'agit il que d'une erreur de frappe ou de copier/coller.
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 18h12   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Merci pour la réponse

Le code inséré n'est qu'un exemple

prenons par exemple que :
Code :
1
2
3
 
shareserver = "nomdnsduserver"
sharename = "partageperso"
Lors du lancement de la commande cscript:
Code :
1
2
 
shell.run "cscript c:\createshare.vbs /C /N sharename  /S shareserver"
les paramètres pris en compte seront sharename et non pas la valeur de sharename .
benzurebebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 19h12   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
bonsoir,

il faut sortir tes variables des guillemets .. comme tu le fais la :
Code :
sharepath = "G:\users\" & sharename & ".toto"
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 19h15   #5
Membre confirmé
 
Inscription : octobre 2011
Messages : 188
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 188
Points : 287
Points : 287
Cette page contient les infos nécessaires:
Working with Command-Line Arguments
ou bien tout simplement la documentation script56.chm.

Il me semble que vous voulez utiliser en particulière les arguments nommés, il faut donc lire avec attention la section "Named Command-Line Arguments".
tsuji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 19h57   #6
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Citation:
bonsoir,

il faut sortir tes variables des guillemets .. comme tu le fais la :

sharepath = "G:\users\" & sharename & ".toto"
Mais mais variables, fonctionnent bien dans le premier VB.

Si je fais un
Code :
1
2
 
Wscript.Echo (sharename)
il renvoit bien se que j'attend, c'est à dire 'monpartage'

Mais dès le passage par la fonction cscript pour appeller le second VB
Ca ne converti pas mais variable par leur valeur.

En gros:

Code :
1
2
3
4
 
shareserver = "monserveur"
sharename = "monpartage"
shell.run "cscript c:\createshare.vbs /C /N sharename  /S shareserver"
Je souhaiterai avoir lors du lancement du csript:

Code :
1
2
 
shell.run "cscript c:\createshare.vbs /C /N monpartage  /S monserveur"
Pour plus d'info, dans le VBS createshare.vbs ,qui est lancé via cscript,
j'ai ajouté
Code :
1
2
3
 
Wscript.Echo (parametre1)
Wscript.Echo (parametre2)
En résultat j'ai
sharename (alors que je souhaite avoir monpartage)
shareserver (alors que je souhaite avoir monserveur)
benzurebebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 20h10   #7
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par benzurebebe Voir le message
Mais mais variables, fonctionnent bien dans le premier VB.

Si je fais un
Code :
1
2
 
Wscript.Echo (sharename)
....
normal ... dans ce code ta variable n'est pas dans les guillemets !
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 20h34   #8
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par bbil Voir le message
normal ... dans ce code ta variable n'est pas dans les guillemets !
Mais comment je dois lancer la commande
Code :
1
2
 
shell.run "cscript c:\createshare.vbs /C /N sharename  /S shareserver"
benzurebebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 21h03   #9
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
en sortant les variables de tes guillemets :

Citation:
Envoyé par bbil Voir le message
bonsoir,

il faut sortir tes variables des guillemets .. comme tu le fais la :
Code :
sharepath = "G:\users\" & sharename & ".toto"
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 22h36   #10
Invité de passage
 
Inscription : janvier 2012
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 6
Points : 0
Points : 0
Bonsoir à tous,

Merci pour vos réponses

J'avais effectivement bien un problème de guillemet et d'espace entre mes variable dans le cscript

Il fallait donc :
Code :
1
2
 
objShell.run "cscript" & " " & "c:\createshare.vbs" & " " & "/C" & " " & "/N" & sharename
Sharename est bien traduit par nomdupartage lors du lancement

Bonne soirée
benzurebebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 23h35   #11
Rédacteur/Modérateur
 
Avatar de ProgElecT
 
Homme Francis MILLET
Inscription : décembre 2004
Messages : 2 934
Détails du profil
Informations personnelles :
Nom : Homme Francis MILLET
Âge : 56
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Secteur : Communication - Médias

Informations forums :
Inscription : décembre 2004
Messages : 2 934
Points : 4 150
Points : 4 150
Envoyer un message via MSN à ProgElecT
Encore que tu te compliques la vie
Code :
objShell.run "cscript c:\createshare.vbs /C /N " & sharename
J'ai de plus ajouté un espace avant la variable sharename, il me semble bien qu'elle manque dans ta ligne de code.
ProgElecT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h01.


 
 
 
 
Partenaires

Hébergement Web