Set /p, goto & prise de tête

Résolu
X.A.N.A. Messages postés 216 Statut Membre -  
boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

en ce moment j'essaye de créer un batch me permettant d'accéder plus rapidement à certains fichiers, voici le code source :

"@echo off

:action
SET /P leave= Commande :


IF "%leave%" == "" echo Saisi une commande &goto:action
IF "%leave:~-1%" == " " echo Saisi une commande &goto:action
IF '%leave:~-1%' == 'notepad' goto:notepad
IF '%leave:~-1%' == 'file' goto:file
IF '%leave:~-1%' == 'docs' goto:docs
IF '%leave:~-1%' == 'foto' goto:foto
IF '%leave:~-1%' == 'music' goto:music
IF '%leave:~-1%' == 'load' goto:load
IF '%leave:~-1%' == 'video' goto:video
IF '%leave:~-1%' == 'lacie' goto:lacie
IF '%leave:~-1%' == 'hdd2' goto:hdd2
IF '%leave:~-1%' == 'hdd' goto:hdd
IF '%leave:~-1%' == 'avira' goto:avira
IF '%leave:~-1%' == 'q' goto:exiton

:notepad
start D:\AltimitOS\notepad.exe
goto :action

:file
start C:\Users\
goto action

:docs
start C:\Users\%user%\Documents
goto action

:foto
start C:\Users\%user%\Pictures
goto action

:music
start C:\Users\%user%\Music
goto action

:load
start C:\Users\%user%l\Downloads
goto action

:video
start C:\Users\%user%l\Videos
goto action

:lacie
start G:\
goto action

:hdd2
start D:\
goto action

:hdd
start C:\
goto action

:avira
start "C:\Program Files\Avira\AntiVir Desktop\avcenter.exe"
goto action

:exiton
"

Le problème c'est que n'importe quelle commande que je fasse elle ouvre le bloc-notes, sauf "" et " " auxquelles je n'ose pas toucher puisqu'elles fonctionnent.
Y -t-il un moyen de régler ce problème ?


J'attends vos réponses, merci d'avance, bonne journée
A voir également:

4 réponses

boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
 
Bonjour,
ne pas se prendre la tête !! ^^

voici quelques pistes pour rester calme et quelques corrections mineures ..
- afficher ce que l'on teste avant
- "espace" après les goto
- ":" avant les étiquettes
- suppression de caractères bizzaroïdes !
genre '%leave:~-1%' remplacé par '%leave%'

je n'ai pas testé tout, mais les commandes "file" et "q" fonctionnent.. à vous pour la suite!
A++
@echo off

:action
SET /P leave= Commande :

echo vous nous dites "%leave%" ...

IF '%leave%' == 'notepad' goto :notepad
IF '%leave%' == 'file' goto :file
IF '%leave%' == 'docs' goto :docs
IF '%leave%' == 'foto' goto :foto
IF '%leave%' == 'music' goto :music
IF '%leave%' == 'load' goto :load
IF '%leave%' == 'video' goto :video
IF '%leave%' == 'lacie' goto :lacie
IF '%leave%' == 'hdd2' goto :hdd2
IF '%leave%' == 'hdd' goto :hdd
IF '%leave%' == 'avira' goto :avira
IF '%leave%' == 'q' goto :exiton

goto :action

:notepad
start D:\AltimitOS\notepad.exe
goto :action

:file
start C:\Users\
goto :action

:docs
start C:\Users\%user%\Documents
goto action

:foto
start C:\Users\%user%\Pictures
goto action

:music
start C:\Users\%user%\Music
goto action

:load
start C:\Users\%user%l\Downloads
goto action

:video
start C:\Users\%user%l\Videos
goto action

:lacie
start G:\
goto action

:hdd2
start D:\
goto action

:hdd
start C:\
goto action

:avira
start "C:\Program Files\Avira\AntiVir Desktop\avcenter.exe"
goto action

:exiton
1
X.A.N.A. Messages postés 216 Statut Membre 19
 
Merci je test de suite ;)
0
X.A.N.A. Messages postés 216 Statut Membre 19
 
Merci beaucoup boly38 ça fonctionne !!
Bonne journée à toi, et merci encore une fois :)
0
X.A.N.A. Messages postés 216 Statut Membre 19
 
Bon là j'abuse peut-être :$ mais maintenant j'aimerais pouvoir copier des fichiers ou les déplacer à partir de cette commande, tu as une idée de comment faire? j'ai essayé avec des variables mais ça n'a pas fonctionné. Sinon il faudrait que je puisse sortir de la boucle et que je puisse y retourner après, mais il me semble que c'est impossible.
0
boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
 
un exemple pour créer une variable qui comporte un nom de répertoire:
SET TOTo=C:\TEMP 

pour afficher le contenu de la variable :
echo %TOTo% 

pour afficher le contenu du répertoire de la variable :
DIR %TOTo% 

pour copier un fichier (ou plusieurs..) en spécifiant comme cible une variable comportant le répertoire :
copy toto.txt %TOTo% 

enfin après la copie; pour revenir au menu il suffit de lui spécifier l'étiquette comme pour les autres :
goto :action 

A++
0