Bonjour
Voici un bout de code d'un script Win servant a executer un script sql sur une base ORA (en fait sur toutes les bases du serveur)
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
   | 
for /F "tokens=3 delims= " %%i in ('tasklist /svc ^|findstr OracleService') do
(
	set SID=%%i
	set SID=!SID:ORACLESERVICE=!
	set ORACLE_SID=!SID!
	echo "= Analyze des Schema de !SID!=">>%fic_log%
REM - Génération du SQL d Analyze et execution de celui ci	
	sqlplus / @%rep_sql%\analyze.sql %rep_sql%\execAnalyze.sql >>%rep_appli%\log\Ana-%savecomplet-!SID!.log
	echo exit >> %rep_sql%\execAnalyze.sql
	sqlplus / @%rep_appli%\execAnalyze.sql >> %rep_appli%\log\Ana-%savecomplet%-!SID!.log
REM - Lecture de la log et recuperation des erreurs
	for /F "tokens=1* delims=-" %%i in ('findstr ORA- D:\exploitation\log\Ana-%savecomplet%-!SID!log') do | 
 Et bien ce script ne se comporte pas de la même manière sur tous les serveurs Windows
En l'occurrence sur le dernier testé (win 2003 SP2) celui ci se veut farceur
	
	%rep_appli%\log\Ana-%savecomplet%-!SID!.log
 devient 
	
	C:\MONREP\log\Ana-20100702-14h40-MABASE.log
 ce fichier est bien crée, est bien rempli bref tout va bien
mais pour la ligne 
	
	for /F "tokens=1* delims=-" %%i in ('findstr ORA- D:\exploitation\log\Ana-%savecomplet%-!SID!log') do
 elle devient 
	
	findstr ORA- C:\MONREP\log\Ana-20100702-14h40-MABASE .log
 (notez bien lespace avec le .log
du coup le script tente de chercher la chaine ORA- dans un fichier qui n existe pas C:\MONREP\log\Ana-20100702-14h40-MABASE, puis dans un second qui n existe pas plus : .log
comment cela se fait ce ? 
Surtout que sur d autres serveurs tout va bien ? 
Dans le meme style sur mon serveur 
n'est pas equivalent à 
Dans le 1er cas le code ne fonctionne pas dans le second si
						
					
Partager