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