Batch

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

13 réponses

BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
Salut,

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

ex: ECHO %homepath%

0
zavenger Messages postés 811 Date d'inscription   Statut Membre Dernière intervention   161
 
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
Soup
 
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
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
Et en effet, la fonction IF existe maintenant je ne sais pas exactement ce que tu veux faire donc ...
0
zavenger Messages postés 811 Date d'inscription   Statut Membre Dernière intervention   161
 
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

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

Posez votre question
Soup
 
ok merci tout les 2
0
Soup
 
echo off
IF "%HOMEPATH%"=="%compte%"
(
xcopy c:\*.lnk "C:\Documents and Settings\All Users\Bureau" /Y
)
pause

La syntaxe vous parait corect ? svp
0
Soup
 
Ce code n'affiche ni le fenetre DOS , malgre la pause; ni les fichiers crees ...
need help ^^
0
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
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
Soup
 
Ah daccord,
bin en fait je veux cree tels fichiers si le compte utilisé est 'compte' par exemple.
0
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
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
Soup
 
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
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
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
Soup > BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention  
 
Non, apparement le probleme n est pas la, pas de nom de domaine ou de groupe de travail... juste mon nom de compte
0
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159 > Soup
 
Essaye 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
Soup
 
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
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
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
Soup > BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention  
 
Et bien la fenetre apparait mais les fichiers ne sont pas crees
0
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159 > Soup
 
Normal 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
Soup
 
oui
0
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159
 
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
Soup
 
Youpi ^^
Ca fonctionne , le probleme devait etre le saut de ligne ...
Merci bcp de m avoir aidé
0
BlueMind Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   159 > Soup
 
De rien, c'était avec plaisir
0
zavenger Messages postés 811 Date d'inscription   Statut Membre Dernière intervention   161
 
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
Soup
 
ok je prend note ^^
0