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 !!!!