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. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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. 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. 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. 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. Salut,

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

          ex: ECHO %homepath%

          0