Script VBS avec variable d'environnement

Résolu
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

  1. 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. 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.
      1. 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...
        1. 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
      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.
        1. Contributeur
          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
      3. Contributeur
        bonjour,
        peut-être:
        Set objShell = CreateObject("WScript.Shell")
        Set objEnv = objShell.Environment("User")
          
        UP = objEnv("userprofile")