IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Problème avec mon script Batch qui se ferme immédiatement après ouverture [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club Avatar de 7W3N7Y
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mai 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2023
    Messages : 2
    Par défaut Problème avec mon script Batch qui se ferme immédiatement après ouverture
    Bonjour à tous,

    J'ai rencontré un problème avec mon script Batch et je suis à la recherche d'aide pour le résoudre. Lorsque j'ouvre le script, la fenêtre se ferme immédiatement sans afficher le menu principal. Je voudrais comprendre ce qui ne fonctionne pas correctement et comment résoudre ce problème.

    Voici le contenu de mon script actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    @echo off
    title Cl3aner P0rtable
    
    :: Variables de langue
    setlocal enabledelayedexpansion
    set lang=english
    
    :: Variables de couleur
    set color=0A
    
    :MainMenu
    cls
    echo MainMenu:
    echo.
    if "%lang%"=="english" (
        echo 1) Clean-Up Temporary Files
        echo 2) Clean-Up Prefetch Files
        echo 3) Clean-Up Downloads Files
        echo 4) Settings
        echo 5) Quit
    ) else if "%lang%"=="french" (
        echo 1) Nettoyer les fichiers temporaires
        echo 2) Nettoyer les fichiers prefetch
        echo 3) Nettoyer les fichiers téléchargés
        echo 4) Paramètres
        echo 5) Quitter
    ) else if "%lang%"=="spanish" (
        echo 1) Limpiar archivos temporales
        echo 2) Limpiar archivos prefetch
        echo 3) Limpiar archivos descargados
        echo 4) Configuración
        echo 5) Salir
    ) else if "%lang%"=="german" (
        echo 1) Temporäre Dateien aufräumen
        echo 2) Prefetch-Dateien aufräumen
        echo 3) Heruntergeladene Dateien aufräumen
        echo 4) Einstellungen
        echo 5) Beenden
    ) else if "%lang%"=="russian" (
        echo 1) Очистка временных файлов
        echo 2) Очистка файлов Prefetch
        echo 3) Очистка загруженных файлов
        echo 4) Настройки
        echo 5) Выйти
    )
    echo.
    set /p input=Option:
    
    if "%input%"=="1" (
        call :1
    ) else if "%input%"=="2" (
        call :2
    ) else if "%input%"=="3" (
        call :3
    ) else if "%input%"=="4" (
        call :4
    ) else if "%input%"=="5" (
        exit /b 0
    ) else (
        goto :MainMenu
    )
    
    goto :MainMenu
    
    :1
    echo Deleting temporary files...
    del /s /f /q %temp%\*.*
    pause
    goto :MainMenu
    
    :2
    echo Deleting prefetch files...
    del /s /f /q C:\Windows\Prefetch\*.*
    pause
    goto :MainMenu
    
    :3
    echo Deleting downloads files...
    del /s /f /q %userprofile%\Downloads\*.*
    pause
    goto :MainMenu
    
    :4
    echo Settings:
    echo.
    if "%lang%"=="english" (
        echo 1) Change Language
        echo 2) Change Color
        echo 3) Go back to Main Menu
    ) else if "%lang%"=="french" (
        echo 1) Changer la langue
        echo 2) Changer la couleur
        echo 3) Retourner au menu principal
    ) else if "%lang%"=="spanish" (
        echo 1) Cambiar idioma
        echo 2) Cambiar color
        echo 3) Volver al menú principal
    ) else if "%lang%"=="german" (
        echo 1) Sprache ändern
        echo 2) Farbe ändern
        echo 3) Zurück zum Hauptmenü
    ) else if "%lang%"=="russian" (
        echo 1) Изменить язык
        echo 2) Изменить цвет
        echo 3) Вернуться в главное меню
    )
    echo.
    set /p input=Option:
    
    if "%input%"=="1" (
        goto :ChangeLanguage
    ) else if "%input%"=="2" (
        goto :ChangeColor
    ) else if "%input%"=="3" (
        goto :MainMenu
    ) else (
        goto :MainMenu
    )
    
    :ChangeLanguage
    echo Select language:
    echo.
    echo 1) English
    echo 2) French
    echo 3) Spanish
    echo 4) German
    echo 5) Russian
    echo.
    set /p lang_choice=Option:
    
    if "%lang_choice%"=="1" (
        set lang=english
    ) else if "%lang_choice%"=="2" (
        set lang=french
    ) else if "%lang_choice%"=="3" (
        set lang=spanish
    ) else if "%lang_choice%"=="4" (
        set lang=german
    ) else if "%lang_choice%"=="5" (
        set lang=russian
    )
    
    goto :MainMenu
    
    :ChangeColor
    echo Select color:
    echo.
    echo 1) Green
    echo 2) Blue
    echo 3) Red
    echo 4) Yellow
    echo 5) White
    echo.
    set /p color_choice=Option:
    
    if "%color_choice%"=="1" (
        set color=0A
    ) else if "%color_choice%"=="2" (
        set color=09
    ) else if "%color_choice%"=="3" (
        set color=0C
    ) else if "%color_choice%"=="4" (
        set color=0E
    ) else if "%color_choice%"=="5" (
        set color=07
    )
    
    goto :MainMenu
    J'ai récemment apporté quelques modifications pour permettre le changement de langue et de couleur dans le menu des paramètres. Cependant, depuis ces modifications, le script se ferme instantanément après son ouverture, sans afficher le menu principal.

    J'ai essayé de déboguer le script en commentant certaines parties pour identifier la source du problème, mais sans succès.

    Pouvez-vous m'aider à comprendre pourquoi le script ne fonctionne plus correctement et pourquoi il se ferme immédiatement après l'ouverture ? Qu'est-ce qui pourrait causer ce comportement inattendu ?

    Merci d'avance pour votre aide précieuse !

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Salut,

    Pour commencer simplifions le code, ceci ne fonctionne pas
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    @echo off
    title Cl3aner P0rtable
     
    :: Variables de langue
    setlocal enabledelayedexpansion
    set lang=english
     
    :: Variables de couleur
    set color=0A
     
    :MainMenu
    cls
    echo MainMenu:
    echo.
    if "%lang%"=="english" (
        echo 1) Clean-Up Temporary Files
        echo 2) Clean-Up Prefetch Files
        echo 3) Clean-Up Downloads Files
        echo 4) Settings
        echo 5) Quit
    )

    Dans ...echo 1) Clea... la parenthèse ouvrante interfère avec celle du bloc if
    Les else if n'existe pas en batch
    Lorsque tu fait un call d'une étiquette il est préférable (nécessaire peut être) de la quitter avec un GOTO :EOF. Sinon l'appeler avec un GOTO

    Tu peux aussi envisager de centraliser tes traductions comme ceci.
    Sur l’ensemble du code je pense que cela sera préférable.

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    @echo off
    title Cl3aner P0rtable
     
    :: Variables de langue
    setlocal enabledelayedexpansion
    set lang=english
     
    :: Variables de couleur
    set color=0A
     
    :: Traductions
    set "EN_CleanUpTemp=Clean-Up Temporary Files"
    set "FR_CleanUpTemp=Nettoyer les fichiers temporaires"
    set "SP_CleanUpTemp=Limpiar archivos temporales"
    set "GE_CleanUpTemp=Temporäre Dateien aufräumen"
    set "RU_CleanUpTemp=Очистка временных файлов"
     
    set "lang=FR"
     
    :MainMenu
    cls
    echo MainMenu:
    echo.
     
    echo 1^) !%lang%_CleanUpTemp!
     
    pause
    goto :MainMenu

  3. #3
    Candidat au Club Avatar de 7W3N7Y
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mai 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2023
    Messages : 2
    Par défaut
    Merci beaucoup pour toutes les précision ! J'ai résolu mon problème a la suite de la réception de votre message

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Divers petits problèmes avec mon script
    Par fourniey dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/12/2007, 16h20
  2. Problème avec mon script shell case in esac
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/06/2007, 22h54
  3. Problème avec mon script
    Par Toinou0123 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 30/09/2006, 18h37
  4. (Batch et VBS) Petit probléme avec un script batch VBS
    Par Edoxituz dans le forum Windows
    Réponses: 11
    Dernier message: 27/02/2006, 17h21
  5. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo