Se connecter / S'enregistrer
Votre question

la structure du if dans un fichier .bat donc le if en bach

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
13 Janvier 2006 09:53:01

bonjour tout le monde,
tout d'abord, bonne fetes de fin d'année!

J'ai un ptit probleme en ce qui concerne un script en vbs qui creé des utilisateurs dans un environnement active directory (win serveur 2003)... Donc ils sont creé à partir du fichier .csv
Le fichier à en premiere colonne le nom (correspond à %%A),2ème colonne le prenom, 3ème l'année, 4ème l'OU, et derniere colonne le mot de passe (donc correspond à %%E)

Voilà mon script:

echo off

FOR /f "tokens=1,2,3,4,5 delims=;" %%A in (etudiants.csv) do (

If %%A=="3A"
then
dsadd user "CN=%%A,OU=%%D,DC=jmontuir,DC=com" -upn %%A -fn %%B -pwd %%E -memberof "CN=%%C,DC=jmontuir,DC=com" -profile "\\Montuir-d2mrpqw\Profil\%%C\%%A" -disabled no
mkdir "D:\Profil\%%C\%%A"
echo o| cacls D:\Profil\%%C\%%A /T /G %%A:f Administrateurs:f

Else
dsadd user "CN=%%A,OU=%%D,DC=jmontuir,DC=com" -upn %%A -fn %%B -pwd %%E -memberof "CN=%%C,DC=jmontuir,DC=com" -profile "\\Montuir-d2mrpqw\Profil\obligatoire" -disabled no

echo o| cacls D:\Profil\obligatoire /T /G %%A:f Administrateurs:f


End If

)
gpupdate
pause

rem Changement de mot de passe au prochain démarrage.
rem -mustchpwd


En faite, j'aimerais que les etudiant de 3A ai un profil itinerant et tout les autres un profil obligatoire! Mais mon if ne marche pas... Je ne comprends pas pourquoi car la structure a l'air correcte... pourriez vous m'aidez????

Merci d'avance,

jf

Autres pages sur : structure fichier bat bach

a b L Programmation
13 Janvier 2006 13:03:22

Il faut écrire rigoureusement le IF:

if condition (
' on met ce qu'on veut ici
) else (
' on met ce qu'on veut ici
)

En batch:
- tout s'exécute sur le même ligne, seules les parenthèses indiquent le multi-lignes.
Donc la 1ere "(" doit être sur la même ligne. ")", "else" et "(" soivent également être sur le même ligne
- pas de "then" ni de "endif"

13 Janvier 2006 13:11:18

merci, j'essayerai ca ce soir, car maintenant je vais aller à mon examen de droit... (hé oui , on a aussi un cours de droit en informatique...) :-(
Contenus similaires
14 Janvier 2006 01:03:09

Ok, je viens de tester le if et ca fonctionne, mais mnt un autre probleme arrive ca fais 1h que je cherche dans google la solution... Donc comme je n'ai tjs pas trouvé, je me tourne vers le forum! :-)
Donc j'ai mon "if":

If %%C=="3A"

et j'aimerais faire: soit l'année est égale à "3A" ou "3I"

donc j'ai essayé de faire:
if %%C=="3A" OR %%C=="3I" (
..... )

j'ai fait aussi:
if %%C=="3A" || %%C=="3I" (
..... )

Mais ca ne vas pas ....
Pourriez vous me donnez des élements de solutions à ce problème? svp

Merci d'avance,

jf
14 Janvier 2006 10:14:13

Et si tu faisais simplement :

if %%C=="3A" (
:123
....
)
if %%C=="3I" goto 123


Si vous pouviez m'éclairer un peu : c'est quoi cette variable : %%C et quand esqu'il faut mettre des " " sur le nom de la variable ?? exemple tu à fé : "3A"

Merci
14 Janvier 2006 11:04:43

donc en faite comme je l'ai dit plus haut, je crée mes utilisateurs a partir d'un fichier csv (séparé par des point virgule).

La variable %%C signifie qu'il lit la 3ème colonne.

"3A" signifie que l'élève est en 3ème année et qu'il fait comme étude Automation.

"3I" signifie qu'il est en 3ème année et qu'il etudie l'Informatique

Les " " servent à delimiter ce qu'il lit (je ne croit pas que ce soit obligatoire)

Je vais essayer la solution que tu ma dis ci-dessus, je te redis quoi si ca fonctionne ou pas.
Merci,

jf
a b L Programmation
14 Janvier 2006 13:34:07

les "" sont effectivement facultatifs. Ils servent lorsqu'il y a des espaces, car ceux-ci sont interprété par le batch comme étant un mot-clé suivant. Les guillement permettent de tout metre dans la comparaison.
pour les doubles %%, c'est surement parce qu'il est dans un FOR qui a besoin du %%C pour ne pas confondre avec une possible variable qui s'appelerait %C

Sinon comme le dit Dark_Silver, il faut jouer avec les GOTO pour faire des OU ou des ET.
15 Janvier 2006 10:09:07

ok merci bcp, le problème est mnt résolu :-)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS