[batch] probleme je sais pas ou

Fermé
sylvain-a - 28 mai 2008 à 18:22
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 29 mai 2008 à 19:49
Bonjour,
voila j'ai tenté de créé un petit programme, mais j'ai du faire une erreure quelque part ( je suis débutant ! )

ils me disent : and n'est pas reconnu en tant que commande interne ou externe ...

le source de mon batch est :

@echo off
title cleaner
mode con LINES=55 COLS=125
echo.
echo create by : Sylvain version 1.0
color f1
echo.
echo ================================================================================
echo.
echo.
echo.
echo Menu
echo.
echo.
echo.
echo.
echo Vous taperez :
echo.
echo C: Supprimer les cookies
echo V.C: Vider la corbeille
echo S.H: Supprimer les historiques
echo S.I: Supprimer les "Temporary Internet Files" (doivent etre supprime)
echo All: Tout supprimer
echo A: autres
echo.
echo =================================================================================
echo.
echo.
echo.
echo.
ping 127.0.0.1 -n 02>nul
set /p menu=que voulez-vous faire ?
if "%menu%"=="c" GOTO Suppr.cookies
if "%menu%"=="C" GOTO Suppr.cookies
if "%menu%"=="v.c" GOTO corbeille
if "%menu%"=="V.C" GOTO corbeille
if "%menu%"=="s.h" GOTO Historique
if "%menu%"=="S.H" GOTO Historique
if "%menu%"=="S.I" GOTO Temporary Internet Files
if "%menu%"=="s.i" GOTO Temporary Internet Files
if "%menu%"=="All" GOTO Tout supprimer
if "%menu%"=="ALL" GOTO Tout supprimer
if "%menu%"=="all" GOTO Tout supprimer
if "%menu%"=="A" GOTO autres
if "%menu%"=="a" GOTO autres

:Suppr.cookies
if NOT exist C:\Documents and Settings\Administrateur\Cookies (echo vous n'avez aucun cookies. )
if exist "C:\Documents and Settings\Administrateur\Cookies" del /q C:\Documents and Settings\Administrateur\Cookies
echo.
pause

:corbeille
if NOT exist c:\recycler (echo vous n'avez aucun fichier dans votre corbeille )
if exist "c:\recycler" rmdir /s /q c:\recycler
echo.
pause

:Historique
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Historique (echo vous n'avez aucun historique. )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Historique" del /q C:\Documents and Settings\Administrateur\Local Settings\Historique
echo.
pause

:Temporary Internet Files
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files (echo vous n'avez pas de "Temporary Internet Files" )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files" del /q C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files
echo.
pause

:Tout supprimer
if NOT exist C:\Documents and Settings\Administrateur\Cookies (echo vous n'avez aucun cookies. )
if exist "C:\Documents and Settings\Administrateur\Cookies" del /q C:\Documents and Settings\Administrateur\Cookies
if NOT exist c:\recycler (echo vous n'avez aucun fichier dans votre corbeille )
if exist "c:\recycler" rmdir /s /q c:\recycler
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Historique (echo vous n'avez aucun historique. )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Historique" del /q C:\Documents and Settings\Administrateur\Local Settings\Historique
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files (echo vous n'avez pas de "Temporary Internet Files" )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files" del /q C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files
echo.
pause

:autres
set /p autres=Voulez vous supprimer vos historiques de conversations MSN ?
if "%autres%"=="oui" rmdir /s /q C:\Documents and Settings\henri\Mes documents\Mes Historiques de Conversation
if "%autres%"=="non" (echo retour )
pause


Voila, si quelqu'un pourrait m'aider se serait sympa !

merci d'avance

13 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
28 mai 2008 à 18:26
Bonjour,

Mets des doubles quotes ("C:\...... and.........") à tes chemins/répertoires, ce sont les espaces qu'il n'aime pas trop !
0
c bon merci beaucoup, par contre, une fois que je lance par exemple V.C, a la fin, je voudrai qu'il revienne au menu simple ... comment puis-je faire svp ? !
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
28 mai 2008 à 19:44
Appelle tes sous-programmes avec un CALL : et termine chaque sous-programme par un GOTO :EOF.
N'oublie pas les : devant les noms des sous-programmes.--

Cordialement.

Cchristian.
0
oula ... Tu veux bien donner un tout petit exemple ou m'expliquer un peu mieu stp, je suis débutant et je connais pas vraiment :-/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sa donnera par exmple :


call :corbeille
if NOT exist c:\recycler (echo vous n'avez aucun fichier dans votre corbeille )
if exist "c:\recycler" rmdir /s /q c:\recycler
echo.
pause
:EOF


???
0
je pense que c'est tout bon ... Pouvez me dire si il y a des erreurs s'il vous plaît ( je ne peux pas voir moi je suis sur linux pour le moment et ma mere a éteint son PC j'ai pas le droit d'y retourner ...


@echo off
title cleaner
mode con LINES=55 COLS=125
:menu1
echo.
echo create by : Sylvain version 1.0
color f1
echo.
echo.
echo ================================================================================
echo.
echo.
echo.
echo Menu
echo.
echo.
echo.
echo.
echo Vous taperez :
echo.
echo C: Supprimer les cookies
echo V.C: Vider la corbeille
echo S.H: Supprimer les historiques
echo S.I: Supprimer les "Temporary Internet Files" (doivent etre supprime)
echo All: Tout supprimer
echo A: autres
echo.
echo =================================================================================
echo.
echo.
echo.
echo.
ping 127.0.0.1 -n 02>nul
set /p menu=que voulez-vous faire ?
if "%menu%"=="c" GOTO Suppr.cookies
if "%menu%"=="C" GOTO Suppr.cookies
if "%menu%"=="v.c" GOTO corbeille
if "%menu%"=="V.C" GOTO corbeille
if "%menu%"=="s.h" GOTO Historique
if "%menu%"=="S.H" GOTO Historique
if "%menu%"=="S.I" GOTO Temporary Internet Files
if "%menu%"=="s.i" GOTO Temporary Internet Files
if "%menu%"=="All" GOTO Tout supprimer
if "%menu%"=="ALL" GOTO Tout supprimer
if "%menu%"=="all" GOTO Tout supprimer
if "%menu%"=="A" GOTO autres
if "%menu%"=="a" GOTO autres

:Suppr.cookies
if NOT exist C:\Documents and Settings\Administrateur\Cookies (echo vous n'avez aucun cookies. )
if exist "C:\Documents and Settings\Administrateur\Cookies" del /q C:\Documents and Settings\Administrateur\Cookies
echo.
:fin set /p menu=pour retourner au menu tapez "m"?
if "%menu1%"=="m" GOTO menu
if "%menu1%"=="M" GOTO menu
if not "%menu1%"=="m" (exit)
if not "%menu1%"=="M" (exit)
cls

:corbeille
if NOT exist c:\recycler (echo vous n'avez aucun fichier dans votre corbeille )
if exist "c:\recycler" rmdir /s /q c:\recycler
echo.
:fin set /p menu=pour retourner au menu tapez "m"?
if "%menu1%"=="m" GOTO menu
if "%menu1%"=="M" GOTO menu
if not "%menu1%"=="m" (exit)
if not "%menu1%"=="M" (exit)
cls

:Historique
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Historique (echo vous n'avez aucun historique. )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Historique" del /q C:\Documents and Settings\Administrateur\Local Settings\Historique
echo.
:fin set /p menu=pour retourner au menu tapez "m"?
if "%menu1%"=="m" GOTO menu
if "%menu1%"=="M" GOTO menu
if not "%menu1%"=="m" (exit)
if not "%menu1%"=="M" (exit)
cls

:Temporary Internet Files
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files (echo vous n'avez pas de "Temporary Internet Files" )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files" del /q C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files
echo.
:fin set /p menu=pour retourner au menu tapez "m"?
if "%menu1%"=="m" GOTO menu
if "%menu1%"=="M" GOTO menu
if not "%menu1%"=="m" (exit)
if not "%menu1%"=="M" (exit)
cls

:Tout supprimer
if NOT exist C:\Documents and Settings\Administrateur\Cookies (echo vous n'avez aucun cookies. )
if exist "C:\Documents and Settings\Administrateur\Cookies" del /q C:\Documents and Settings\Administrateur\Cookies
if NOT exist c:\recycler (echo vous n'avez aucun fichier dans votre corbeille )
if exist "c:\recycler" rmdir /s /q c:\recycler
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Historique (echo vous n'avez aucun historique. )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Historique" del /q C:\Documents and Settings\Administrateur\Local Settings\Historique
if NOT exist C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files (echo vous n'avez pas de "Temporary Internet Files" )
if exist "C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files" del /q C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files
echo.
:fin set /p menu=pour retourner au menu tapez "m"?
if "%menu1%"=="m" GOTO menu
if "%menu1%"=="M" GOTO menu
if not "%menu1%"=="m" (exit)
if not "%menu1%"=="M" (exit)
cls

:autres
set /p autres=Voulez vous supprimer vos historiques de conversations MSN ?
if "%autres%"=="oui" rmdir /s /q C:\Documents and Settings\henri\Mes documents\Mes Historiques de Conversation
if "%autres%"=="non" (echo retour )
:fin set /p menu=pour retourner au menu tapez "m"?
if "%menu1%"=="m" GOTO menu
if "%menu1%"=="M" GOTO menu
if not "%menu1%"=="m" (exit)
if not "%menu1%"=="M" (exit)
cls


merci de bien vouloir me signaler la moindre erreur ...

Merci d'avance !
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
28 mai 2008 à 21:12
REM  Séquence appelante :
          CALL                :ECRITURE_MATCH. . . . .  . . . . .  .          
           .................................................... 
           .................................................... 
           .................................................... 
           .................................................... 
         GOTO                                            :EOF


REM  Séquence appelée :
:ECRITURE_MATCH

        ..........................................
        .........................................

        GOTO                                            :EOF

0
j'comprends rien :X
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
28 mai 2008 à 21:44
Dans un fichier .bat un ordre GOTO :EOF lorsqu'il termine une séquence d'ordres appelée par un CALL (donc un sous-programme), a pour effet de rebrancher l'exécution sur l'ordre qui suit immédiatement le CALL.
Lorsque cet ordre GO TO :EOF se trouve dans la séquence principale il occasionne l'arrêt du traitement.

C'est classique en programmation structurée, il y a toujours un ordre (ou une convention d'écriture, ici c'est l'ordre GOTO :EOF présent dans d'un sous-programme ) qui formalise la fin d'un sous-programme ou d'une procédure ou d'une fonction ou ......... (par exemple en C c'est l'ordre RETURN) et qui a pour effet de "rebrancher" la logique d'exécution à l'instruction, l'ordre, qui suit immédiatement l'ordre d'appel (ici c'est le CALL)
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
28 mai 2008 à 23:35
Complément d'informations ( Doc en ligne HELP CALL dans la ligne de l'invite de commande):

Si les extensions de commandes sont activées, CALL est modifié comme suit :
La commande CALL accepte maintenant des étiquettes comme cible de CALL. La
syntaxe est :

CALL :étiquette arguments

Un nouveau contexte de fichier de commandes est créé avec les arguments
spécifiés et le contrôle est transmis à la commande suivant l'étiquette
spécifiée. Vous devez "quitter" deux fois en atteignant la fin du script du
fichier de commandes deux fois. La première fois que vous lisez la fin, le
contrôle reviendra juste après la commande CALL. La seconde fois vous
quitterez le script de commandes. Entrez GOTO /? pour une description de
l'extension GOTO :EOF qui vous permettra de "retourner" en dehors d'un script
LIMPIDE !!!!

Pour activer l'extension des commandes, insérer en début du fichier .bat la commande :
SETLOCAL ENABLEextensions

Cordialement.

Cchristian.
0
re-bonjour, j'ai trouvé un façon plus simlifié ( pour moi de la faire ) mais je voudrais effacer un truc que j'arrive pas :/ je m'explique...

j'ai mon menu :

@echo off
:menu1
echo.
echo sa c le menu

et j'ai mon truc pour revenir au menu :
set /p menu=pour retourner au menu tapez "m"?
if "%menu%"=="m" GOTO menu1
if "%menu%"=="M" GOTO menu1
if not exist "%menu%"=="m" (exit)
if not exist "%menu%"=="M" (exit)

mais le probleme, c que je voudrai un faire un "cls" pour enlever mon menu sinon j'en ai deux ... mais je ne sais pas ou il faut le placer !

aidez moi svp, c la touche final de mon batch !
0
c bon ! j'ai placé mon "cls" apres ( tout au debut ) :menu1 et c'est bon ! !


Je l'ai mis en téléchargement pour ceux a qui sa plaît d'avoir un tout petit programme tout léger

http://rapidshare.de/files/39558271/Claner.exe.html

et merci a tout ceux qui 'mont aider et surtout a toi christian !

merci beaucoup !
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
29 mai 2008 à 19:49
Merci pour le retour,

A bientôt,
0