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)

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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
%rep_appli%\log\Ana-%savecomplet%-!SID!.log
devient

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
for /F "tokens=1* delims=-" %%i in ('findstr ORA- D:\exploitation\log\Ana-%savecomplet%-!SID!log') do
elle devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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