Un comportement étrange (de plus ?) sur variable
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:
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:
%rep_appli%\log\Ana-%savecomplet%-!SID!.log
devient
Code:
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:
for /F "tokens=1* delims=-" %%i in ('findstr ORA- D:\exploitation\log\Ana-%savecomplet%-!SID!log') do
elle devient
Code:
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