Salut,
J'aimerais savoir pourquoi ce bout de code ne fonctionne pas :
(même code, mais screenshot Notepad++ avec des annotations : http://img190.imageshack.us/img190/6...0516153817.jpgecho * Tapez le ou les num‚ros votre choix, avec un point entre chaque nombre
echo (sans espace), ou tapez "all" pour tous les choisir, et appuyez sur ENTREE...
echo.
echo.
set /p choix=""
cd _resources
:decompoz
set numbers=%choix%
set TMP="%numbers:.=" "%"
call :getit %TMP%
:getit
if "%~1" neq "" (
set match=%~1
echo set target=#truc%match%#>temp.bat
call switch\switch.exe "temp.bat" "#" "%"
call temp.bat
echo %target%
shift
goto getit
)
pause
En gros, voici le fonctionnement :
- on tape un chiffre ou une série de chiffres séparés de points
- le code décortique les chiffres entre chaque point
- "truc~n" correspond à des variables fabriquées plus en amont (non visible ici).
- donc suivant ce qu'on a tapé comme chiffre, je voudrais que "target" prennent comme valeur la valeur de la variable "truc~le n° décortiqué".
Exemple :
- plus haut on a affiché une liste de softs : 1-MSN, 2-Firefox, 3-Ccleaner
- on en a profité pour fabriquer des variables : truc1=MSN, truc2=Firefox, etc
- l'utilisateur tape par exemple "1.3", alors le script décortique "1" et "3".
- Il doit ensuite fabriquer une variable "target" qui est égale à "truc1", puis plus tard qui est égale à "truc3"
- entre temps il se servira de "target" pour réaliser une opération qu'il est futile d'illustrer ici.
Astuces que j'ai faite :
- comme je n'arrivais pas à conceptualiser le bordel, j'ai bidouillé de quoi inscrire la variable "target" dans un fichier où elle prend la valeur de "truc~numéro décortiqué"
- puis de remplacer ensuite les "#" par des "%"
- ensuite on a bien "set target=%truc1%" (par exemple) dans le fichier temp.bat, qu'on appelle pour définir cette variable.
- enfin on fait ce dont on a besoin avec la variable (non illustré ici).
Problème rencontré (image de la console de commandes) :
http://img34.imageshack.us/img34/587...0516152411.jpg
Partager