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 -
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
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:
- Set /p, goto & prise de tête
- Set-top box - Accueil - Box & Connexion Internet
- Mkdir - p signification ✓ - Forum Linux / Unix
- Dead set saison 2 - Forum Cinéma / Télé
- <P> </p> ✓ - Forum Webmastering
- Commande DOS : MKDIR - Forum Windows
4 réponses
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++
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
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.
un exemple pour créer une variable qui comporte un nom de répertoire:
pour afficher le contenu de la variable :
pour afficher le contenu du répertoire de la variable :
pour copier un fichier (ou plusieurs..) en spécifiant comme cible une variable comportant le répertoire :
enfin après la copie; pour revenir au menu il suffit de lui spécifier l'étiquette comme pour les autres :
A++
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++