Batch

Résolu
Bonjour,
Je dois creer un script batch qui cree des fichiers au demarrage de l'ordinateur. Ces fichiers sont differents suivant le compte utilisé. Mon probleme est que je n'arrive pas a extraire la variable d'environnement homepath.
J aimerai que quelqu un me donne la synthaxe exact de cette commande
merci
Configuration: Windows XP
Firefox 3.0

13 réponses

  1. Salut,

    c'est relativement simple, homepath est une variable d'environnement et donc pour l'utiliser tu fais %homepath%

    ex: ECHO %homepath%

    0
    1. Au demarrage de l'ordi la variable %homePath% n'est pas affectèe car elle n'a lieu d'etre que lorsque qu'un utlisateur est connecté (ou qu'une session ouverte) C'est a ce moment la que tu pourras creer les repertoires
      0
      1. Ok merci.
        Mais la creation des fichiers doit etre automatisé donc jai besoin de faire des boucles non ?
        Dans le genre IF en C ? je ne sait pas si ca exite en batch ...
        0
        1. Et en effet, la fonction IF existe maintenant je ne sais pas exactement ce que tu veux faire donc ...
          0
      2. je te conseille le parametre /? dans une fenetre command prompt

        En dos, si tu connais les commandes IF, FOR tu peux faire tout ce que tu veux (ou presque)

        donc IF /? et for /?
        0
        1. echo off
          IF "%HOMEPATH%"=="%compte%"
          (
          xcopy c:\*.lnk "C:\Documents and Settings\All Users\Bureau" /Y
          )
          pause

          La syntaxe vous parait corect ? svp
          0
          1. Ce code n'affiche ni le fenetre DOS , malgre la pause; ni les fichiers crees ...
            need help ^^
            0
            1. Tu veux faire quoi là parce que ça risque pas de marcher.

              En effet, vu que tu as mis des double quote tes variables sont considérées comme du texte et donc "%homepath%" ne sera jamais équivalent à "%compte%"
              0
          2. Ah daccord,
            bin en fait je veux cree tels fichiers si le compte utilisé est 'compte' par exemple.
            0
            1. Pour récupérer le compte de l'utilisateur tu dois utiliser la variable username alors et ton test doit être dans le genre :

              IF %username% == "MonCompte" ...

              la variable HOMEPATH doit être utilisée en parallèle à la variable HOMEDRIVE pour obtenir le chemin par défaut de l'utilisateur donnecté comme par exemple lorsque tu veux sauvegarder un nouveau document Word, Word te propose par défaut ton répertorie perso "Mes documents".
              0
          3. ok je viens de tester %username% ,ca ne fonctionne pas alors que sans la boucle ca fonctionne ...
            je comprend pas, je suis sur la bonne session pourtant
            0
            1. Pour bien voir où se situe le problème, je te propose de faire un

              ECHO %username%

              pour bien voir ce qu'il y a dans cette variable. Il est bien possible que devant le compte utilisateur tu retrouves le domaine ou autre chose
              0
            2. @BlueMindNon, apparement le probleme n est pas la, pas de nom de domaine ou de groupe de travail... juste mon nom de compte
              0
            3. @SoupEssaye de remplacer == par EQU alors ça marchera peut-être mieux. De plus, je ne sais plus s'il faut utiliser des double quote ou juste des quotes pour les constantes alpha.
              0
          4. Erf ^^ toujour pas j ai tester les differentes combinaisons de quoteset apostraophes, sans succes
            EQU n a rien changer nn plu
            je te redonne mon code ..

            echo off
            IF %username% EQU "romain.imehrar"
            (
            xcopy c:\*.lnk "C:\Documents and Settings\All Users\Bureau" /Y
            )
            pause
            0
            1. Pas certain mais je pense que la syntaxe que tu utilise pour former des groupes d'instruction (utilisation de parenthèse) n'est pas correcte.
              Peux-tu essayer ceci juste pour voir ?

              IF %username% EQU "romain.imehrar" ECHO action

              pause

              0
            2. @BlueMindEt bien la fenetre apparait mais les fichiers ne sont pas crees
              0
            3. @SoupNormal vu qu'il n'y a théoriquement plus de commandes de création de fichier, par contre, retrouves-tu ton message dans la console ?
              0
          5. Très bien dans ce cas c'est que le test fonctionne. Il te suffit maintenant d'écrire l'action :

            IF %username% EQU "romain.imehrar" xcopy c:\*.lnk "C:\Documents and Settings\All Users\Bureau" /Y

            pause

            ATTENTION: je pense que tu dois mettre la commande sur la même ligne que le test (si mes souvenir sont bon) sinon tu dois créer un paragraphe avec un GO etc.
            0
            1. Youpi ^^
              Ca fonctionne , le probleme devait etre le saut de ligne ...
              Merci bcp de m avoir aidé
              0
            2. @SoupDe rien, c'était avec plaisir
              0
          6. dans le cas d'utilisation de parentheses il faut faire colle ceci (La position de la parenthese est importante

            echo off
            IF %username% EQU "romain.imehrar" (
            xcopy c:\*.lnk "C:\Documents and Settings\All Users\Bureau" /Y
            )
            pause
            0
            1. ok je prend note ^^
              0