Bonjour a tous,
je m'essaie aujourdhui pour la premiere fois a la programmation d'un batch DOS
j'ai besoins de faire des IF/ELSE imbriqués, mais j'y arrive pas. J'ai vu qu'il fallait avoir une certaine indentation mais a chaque fois je me retrouve avec un "else inattendu"
je vous donne en clair l'algo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 FOR /f %%i IN (%rep%\catalogue.txt) DO (if %%i EQU FIN_SQL ( if %%i EQU FIN_SQL ( goto PORTAIL) if %%i EQU DDL ( sqlcmd -U %sql_user% -P %sql_pwd% -S %sql_server% -b -d %sql_db% -i %rep%\02_database\ddl\montee_version.sql if !errorlevel! NEQ 0 ( echo %%i OK >> installation.log ) else ( echo %%i KO >> installation.log goto ENDOFBATCH ) ) else ( if %%i EQU DML ( sqlcmd -U %sql_user% -P %sql_pwd% -S %sql_server% -b -d %sql_db% -i %rep%\02_database\dml\montee_version.sql if !errorlevel! NEQ 0 ( echo %%i OK >> installation.log ) else ( echo %%i KO >> installation.log goto ENDOFBATCH ) ) else ( sqlcmd -U %sql_user% -P %sql_pwd% -S %sql_server% -b -d %sql_db% -i %rep%\%%i if !errorlevel! NEQ 0 ( echo %%i OK >> installation.log ) else ( echo %%i KO >> installation.log goto ENDOFBATCH ) ) ) )
j'ai essayé de l'indenter comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if %%i EQU FIN_SQL ( goto PORTAIL) if %%i EQU DDL( sqlcmd -U %sql_user% -P %sql_pwd% -S %sql_server% -b -d %sql_db% -i %rep%\02_database\ddl\montee_version.sql if !errorlevel! NEQ 0(echo %%i OK >> installation.log) else ( echo %%i KO >> installation.log goto ENDOFBATCH)) else( if %%i EQU DML(sqlcmd -U %sql_user% -P %sql_pwd% -S %sql_server% -b -d %sql_db% -i %rep%\02_database\dml\montee_version.sql if !errorlevel! NEQ 0 ( echo %%i OK >> installation.log) else ( echo %%i KO >> installation.log goto ENDOFBATCH )) else (sqlcmd -U %sql_user% -P %sql_pwd% -S %sql_server% -b -d %sql_db% -i %rep%\%%i if !errorlevel! NEQ 0 ( echo %%i OK >> installation.log) else ( echo %%i KO >> installation.log goto ENDOFBATCH)))
Mais non ca marche pas !!
aidez moi please !!!!
Partager