Choix et emplacement de la variable

Résolu
Ka-El Messages postés 279 Statut Membre -  
dubcek Messages postés 19021 Statut Contributeur -
Bonjour,
je suis devant une problématique qui devrait être simple à résoudre (je crois).
je voudrais variabiliser le répertoire à contrôler selon le choix qui est opéré.
Voici le début de mon script :
echo Pour controler le contenu du dossier Z:\TOTO\RCV taper 1
echo Pour controler le contenu du dossier Z:\TATA\EMI taper 2
echo Pour sortir du programme taper "s"
echo.
set /p choix=Quel est votre choix:
if %choix%==1 goto TOTORCV
set rep=Z:\TOTO\RCV
if %choix%==2 goto TATAEMI
set rep=Z:\TATA\EMI
if %choix%==s goto EXIT

J'ai initialiser ma variable "rep" sous la ligne if %choix%, mais ça ne marche pas.
Avez-vous une idée comment procéder pour que la valeur de la variable "rep" change selon le choix effectué ?

En vous remerciant par avance.
Fred

1 réponse

Ka-El Messages postés 279 Statut Membre
 
je pensais avoir trouver la solution en tapant ceci:
if %choix%==1 set rep=Z:\TOTO\RCV & goto TOTORCV

Mais quand le script arrive sur "TOTORCV" :
:TOTORCV
@rem --- Déplacement des fichiers dans le répertoire d'envoi ---
for /f %%b in ('dir %rep% /A /B /O:GEN') do (
set fic=%%b
for /F "delims=. tokens=5" %%c in ('echo %%b') do set appli=%%c
move %rep%\*!appli! %rep2%\!fic!


Il m'ajoute un blanc entre "Z:\TOTO\RCV" et "\*EXT" :
move Z:\TOTO\RCV \*EXT \TOTO\reprise\reprise_fic

Quelqu'un sait pourquoi je me retrouve avec cet espace ?
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
pas d'espace avant &
if %choix%==1 set rep=Z:\TOTO\RCV& goto TOTORCV 

ou utiliser des ()
if %choix%==1 (
set rep=Z:\TOTO\RCV
goto TOTORCV
)
0
Ka-El Messages postés 279 Statut Membre > dubcek Messages postés 19021 Statut Contributeur
 
Merveilleux !
Merci beaucoup Dubcek
Bonne journée ;-)
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
exemple
C:> set x=abcd  & date /t
08/04/2016
C:> echo +%x%+
+abcd +
C:> set x=
C:> set x=abcd& date /t
08/04/2016
C:> echo +%x%+
+abcd+
0