Script VBS avec variable d'environnement

Résolu/Fermé
Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 - 27 avril 2022 à 14:22
Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 - 27 avril 2022 à 16:49
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
A voir également:

5 réponses

Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 2
27 avril 2022 à 16:49
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 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 Ambassadeur 1 557
27 avril 2022 à 14:37
bonjour,
peut-être:
Set objShell = CreateObject("WScript.Shell")
Set objEnv = objShell.Environment("User")
  
UP = objEnv("userprofile")
0
Patrickdusud_0856 Messages postés 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 2
27 avril 2022 à 14:54
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 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 1 557
27 avril 2022 à 15:22
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 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 2
27 avril 2022 à 16:05
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 18384 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 28 décembre 2024 2 729
27 avril 2022 à 16:20
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 40 Date d'inscription samedi 2 mai 2020 Statut Membre Dernière intervention 24 mai 2022 2
27 avril 2022 à 16:27
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