[RESOLU] Détail qui coince sur un batch simple

Détail qui coince sur un batch simple [RESOLU] - Shell/Batch - Programmation

Marsh Posté le 12-03-2008 à 17:34:24    

Bonjour à tous,
 
Je cherche à faire un batch simple qui permettrait d'ajouter des droits sur des fichiers qui portent le nom des utilisateurs.
Ces fichiers sont tous contenus dans un même répertoire.
 
Pour me faciliter la vie, j'ai choisi de faire une liste des utilisateurs dans un fichier .txt puis ensuite d'appliquer les droits pour chaque user sur le fichier du même nom.
 

Code :
  1. @echo off
  2. cls
  3. set chemin=C:\TEST\
  4. cd %chemin%
  5. dir
  6. set %%N=
  7. set fichier=
  8. echo on
  9. for /f "eol=; tokens=1 delims=," %%N in (liste.txt) do (
  10. set user=%%N%
  11. echo %user%
  12. set fichier=%chemin% %user% .txt
  13. echo %fichier%
  14. cacls %fichier% /E /T /G %user%:f
  15. )


 
Le soucis en faisant ça, c'est que mes variables %fichier% et %user% ne prennent pas en compte les changements dans la boucle (elles ont les mêmes valeurs peu importe les utilisateurs sélectionnés dans la liste). Alors que pourtant mon %%N% affiche le bon utilisateur. Comment changer ça ?
 
Merci beaucoup par avance :jap:


Message édité par elliotdoe le 12-03-2008 à 17:54:48
Reply

Marsh Posté le 12-03-2008 à 17:34:24   

Reply

Marsh Posté le 12-03-2008 à 17:54:18    

J'ai trouvé, il faut activer une option pour que les variables soient prises en compte dans la boucle FOR :

 

Lancer :

Code :
  1. cmd /V:ON
  2. Cd c:\TEST\droits-TR.bat
 

Puis exécuter le script en ayant remplacé les %variable% par !variable!.


Message édité par elliotdoe le 12-03-2008 à 17:54:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed