Script VBS avec variable d'environnement

Résolu
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -  
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je rencontre un petit problème avec un script VBS.

J'ai créé un fichier .bat sur mon PC permettant d'effectuer des tâches automatiques, tout est ok au niveau du Batch.

Afin que le programme se lance directement au démarrage du PC, j'avais placé le fichier dans le STARTUP
C:\Users\direction\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Le problème est que pour chaque démarrage, la vieille fenêtre DOS s'ouvre et ce n'est pas très esthétique. J'ai donc décidé de créer un script VBS afin de lancer la fenêtre en mode silencieuse avec le code :

CreateObject("Wscript.Shell").Run "Verif.bat",0,True


Le problème est que ce code m'impose de placer le fichier dans le même répertoire. Je peux donc indiquer le chemin en rajoutant :

"C:\Users\direction\CréationVerif\Verif.bat",0,True


Super, cependant, j'utilise le script sur les PC du bureau, de mon domicile, et le PC portable durant mes déplacements. J'aurais donc souhaité rajouter une variable d'environnement comme %userprofile% afin que le script sache où aller chercher "verif.bat" sans avoir besoin de refaire le code pour chaque PC.

Mais comment diable faire cette variable d'environnement en VBscript ? Rajouter un simple %userprofile% dans le chemin ne fonctionne pas.

Merci à tous pour votre aide.





Configuration: Windows / Chrome 100.0.4896.127

5 réponses

Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   2
 
Ok au final le code est bon. Je faisais juste une erreur de frappe.

Set oShell = CreateObject( "WScript.Shell" )
user=oShell.ExpandEnvironmentStrings("%Userprofile%")
WScript.Echo user & "\CreationVerif\verif.bat"
CreateObject("Wscript.Shell").Run user & "\CreationVerif\verif.bat"
1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
peut-être:
Set objShell = CreateObject("WScript.Shell")
Set objEnv = objShell.Environment("User")
  
UP = objEnv("userprofile")
0
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour, et merci pour votre réponse rapide.

J'ai essayé :


Set objShell = CreateObject("WScript.Shell")
Set objEnv = objShell.Environment("User")

UP = objEnv("userprofile")

CreateObject("Wscript.Shell").Run "%userprofile%verif.bat",0,True


Mais cela ne fonctionne pas. Je suis débutant en VBscript, je dois peut-être modifier la dernière ligne ?

Merci pour votre aide.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
peut-être:
Set objShell = CreateObject("WScript.Shell")
Set objEnv = objShell.Environment("User")
  
UP = objEnv("userprofile")
lacommande = UP & "\verif.bat"
CreateObject("Wscript.Shell").Run  lacommande, 0, True
0
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci encore pour la réponse, j'ai essayé le code, mais cela ne fonctionne pas. Une fenêtre me répond que le fichier spécifié est introuvable. Erreur ligne 6...
0
brucine Messages postés 21635 Date d'inscription   Statut Membre Dernière intervention   3 407
 
Bonjour,

Je ne comprends rien à VBS, on trouve l'astuce en question documentée comme suit:


Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Batch Files\syncfiles.bat" & Chr(34), 0
Set WshShell = Nothing


où chr(34) introduit des guillemets
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrickdusud_0856 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   2
 
J'avance petit à petit.

J'ai trouver le code :
Set oShell = CreateObject( "WScript.Shell" )
user=oShell.ExpandEnvironmentStrings("%Userprofile%")
WScript.Echo user & "\CreationVerif\verif.bat"
CreateObject("Wscript.Shell").Run user & "\CreationVerif\verif.bat"


La ligne Echo m'écrit bien le chemin que je désire. Cependant, cela ne fonctionne pas avec le nom de répertoire "\CreationVerif"

Si je sors verif.bat du dossier CreationVerif et que je le place sur %userprofile% cela fonctionne.

Cependant, j'ai besoin que le batch soit dans le dossier CreationVerif car il fonctionne avec d'autre programme. Je n'arrive pas à résoudre mon problème.
0