Page 1 sur 1
[Résolu] Variables indicée dans une boucle
Posté : 22 mars 2008 14:30
par ghenrion
Bonjour,
Comment utiliser une variable indicée dans une boucle du style %INPUTFILE%ii%%.
Par exemple :
Code : Tout sélectionner
set INPUTFILE100=Sql_Correctif_UTILISAT_1_NULL.sql
set INPUTFILE101=Sql_Correctif_UTILISAT_2_NOT_EXISTS.sql
..........
set ii=100
:LOOP1
if exist %INPUTFILE%ii%% (echo %INPUTFILE%ii%%) else (echo Fichier inconnu)
set /a ii=%ii%+1
if "%ii%"=="110" goto endloop1
goto loop1
:ENDLOOP1
%INPUTFILE%ii%% ne marche pas. Il y a surement une syntaxe particulière.
Merci de votre aide.
Re: Variables indicée dans une boucle
Posté : 22 mars 2008 19:34
par flox
Bonjour,
n'est il pas possible de renommer les "INPUTFILE100" par "100", uniquement ?
Re: Variables indicée dans une boucle
Posté : 24 mars 2008 20:58
par ghenrion
Bonjour,
Effectivement, beaucoup plus simple.
Merci.
Savez vous comment faire un (dir /b *.sql > tmp.txt) :
1- avoir le chemin complet depuis la racine.
2- ne pas avoir l'extension du fichier
Je recupere les lignes du fichier tmp.txt dans un for, mais je ne peux pas utiliser la syntaxe %:-4% des variables pour enlever les 4 derniers caracteres.
Exemple
Code : Tout sélectionner
for /f %%R in (%PRG3%.tmp) do (
echo =================================================================================================== >>%PRG3%.log
echo ===== The %DATE% At %TIME:~0,8% ===== Input file name ===== %%R ===== >>%PRG3%.log
echo =================================================================================================== >>%PRG3%.log
echo osql -S%SQLSERVER% -d%DATABASE% -i%%R
osql -Uxxx -Pxxx -S%SQLSERVER% -d%DATABASE% -i%REP3%\%%R -o%REP3%\%%R.log -w999 -n
type %REP3%\%%R.log >>%PRG3%.log
find "rows affected" %REP3%\%%R.log >>%PRG3%.lst
)
Re: Variables indicée dans une boucle
Posté : 24 mars 2008 22:24
par flox
Bonjour,
ghenrion a écrit :Savez vous comment faire un (dir /b *.sql > tmp.txt) :
1- avoir le chemin complet depuis la racine.
2- ne pas avoir l'extension du fichier
pour avoir le chemin complet tu peut te baser sur un find.
Code : Tout sélectionner
FOR /f "tokens=2 delims= " %%a IN ('find c:\rep\* "sql"') DO echo %%a
De la même manière avec un for on peut enlever le ".sql" en prenant le délimiteur "."
Bonne continuation
Re: Variables indicée dans une boucle
Posté : 12 avr. 2008 11:07
par Invité
Merci pour l'info. Je suis arrivé à faire ce que je voulais.