Page 1 sur 1

[Résolu] une variable dans une variable ou une solution

Posté : 16 nov. 2010 00:28
par jean_michel_199
Bonjour a tous.
je cherche a faire un batch comme ceci (le resultat devant etre logiciel XXX dans un fichier texte)
rem alimantation de mes variables par une liste.txt de logiciels comme ceci:
1=xxx
2=xxx
...
For /f "tokens=*" %%a In (liste_logiciels.txt) do set %%a
:choix
set /P choix=Indiquez le code d'un logiciel a ajoute:
echo %choix% >> logiciels.tmp (rem si je pouvait je m'arreterais ici avec un .txt mais je n'obtient pas le resultat)
:ajoutlog
SET /P choix=Voulez-vous ajouter d'autre logiciels? (Y/N):
if /I %choix%==Y goto choix
if /I %choix%==N goto suite
) else (
echo Erreur d'entree, veuillez saisir Y ou N
pause
goto ajoutlog
:suite
For /f "tokens=*" %%b In (logiciels.tmp) do echo %%b > logiciels.txt
pause

Je ne peux malheureusement pas mettre la liste de mes logiciels dans mon script parceque celle ci est sujete a mise a jour constante (il est donc plus facile de partir d'un fichier plat)

Quelqu'un peux m'aider SVP

Re: une variable dans une variable ou une solution svp URGENT

Posté : 20 nov. 2010 15:37
par jean_michel_199
Bon je sais je me repond a moi meme mais ça peux en interesser d'autre.

Mon fichier .csv contient 16 entrée (celui de test, celui de prod contien plus de 300 entrée et est sujet a mise a jours regulière).
#1:Access
#2:Office Std
#3:AutoCAD LT 2011
...

@echo off
:AjoutLogiciels
set AJLOG=#
SET /P AJLOG=Ajouter un logiciels? (Y/N):
if /I %AJLOG%!==Y! goto YAJLOG
if /I %AJLOG%!==N! goto NAJLOG
) else (
echo Erreur d'entree. Veuillez saisir Y ou N
pause
goto AjoutLogiciels
:YAJLOG
set CODLOG=#
SET /P CODLOG=Indiquez le code du logiciel a ajouter ou taper 0 pour "libre":
if %CODLOG%!==#! goto erreur
if %CODLOG% lss 0 goto erreur
if %CODLOG% gtr 16 goto erreur
if %CODLOG%!==0! (goto AJLOGLIBRE
) else (
FOR /f "tokens=2 delims=:" %%a in ('find "#%CODLOG%:" logiciels.csv') do echo IV_TECH.TEC_LOGICIELS=%%a >> Test_AJLOG.csv
goto AjoutLogiciels
)
:erreur
echo Erreur d'entree. Veuillez saisir un chiffre de 1 a 16 ou 0 pour "libre"
pause
goto AjoutLogiciels
:AJLOGLIBRE
set AJLOGLIBRE=#
set /P AJLOGLIBRE=Indiquez un logiciel et ENTER pour enregistrer:
if %AJLOGLIBRE%!==#! (goto ERAJLOGLIBRE
) else (
echo IV_TECH.TEC_LOGICIELS=%AJLOGLIBRE% >> Test_AJLOG.csv
goto AjoutLogiciels
)
:ERAJLOGLIBRE
echo Erreur d'entree.
pause
goto AjoutLogiciels
:NAJLOG
echo Au revoir et bonne journee!
pause

Voila.