Batch

Résolu
Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   -  
Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Est ce qu'on peut lancer une commande à la fermeture (sur la croix rouge) d'un batch ? Ou faire en sorte que le batch se relance après fermeture (toujours sur la croix rouge)

Je fais une sorte de deuxième identifications windows et je ne veux pas qu'elle soit fermé tant que le mot de passe n'est pas entré.

code :

@echo off
color 1c
set /a essai=3
taskkill /F /IM explorer.exe >NUL
echo nombre d'essais = %essai%
Set /p MDP=Entez le mot de passe pour continuer:
if %MDP%== (mot de passe) (
echo Merci !
goto fin
)else (
goto erreur
)
:erreur
cls
set /a essai=%essai%-1
if %essai%==0 (
shutdown /l
)
echo Nombre d'essais restant = %essai%
Set /P erreur=(Erreur) Entrez a nouveau le mot de passe:
if %erreur%== (mot de passe) (
echo Merci !
goto fin
)Else (
goto erreur
)
:fin
Pause >NUL
start explorer.exe >NUL
exit


Merci d'avance ! En espérant avoir une réponse.

3 réponses

Résumé de la discussion

On cherche à lancer une commande à la fermeture d'un batch et à le relancer après fermeture (croix rouge), tout en bloquant l'identification tant que le mot de passe n'est pas saisi. Des solutions proposées incluent un script qui tue explorer.exe, demande trois essais de mot de passe, et relance explorer.exe si le mot de passe est correct, sinon déconnecte l'utilisateur. La version retenue montre des améliorations comme l'insertion d'un point de départ et d'un label fin, et des échanges sur la propreté du code pour éviter les erreurs de syntaxe. Par ailleurs, il est noté que stocker un mot de passe en clair présente des risques et qu'il existe des alternatives plus sûres.

Bobot (l'IA à votre service)
  1. Ben314 Messages postés 3302 Statut Membre 1 507
     
    Bonjour

    En faite au lieu d'utiliser if utiliser plutot if not.

    mais avec ca faut retravailler votre bath...
    0
    1. Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   24
       
      Ça changerai quoi ?
      0
    2. Ben314 Messages postés 3302 Statut Membre 1 507
       
      ca fait que si le mdp ne correspond pas ca renvoi vers le "erreur"

      if not %erreur%== (mot de passe) goto erreur

      Juste un quelque minute je vais essayer de vous le retravailler ^^
      0
    3. Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   24
       
      D'accord merci beaucoup !
      0
  2. Ben314 Messages postés 3302 Statut Membre 1 507
     
    Ca donnerai ca :

    @echo off
    color 1c
    set /a essai=3
    taskkill /F /IM explorer.exe >NUL

    :debut
    echo nombre d'essais = %essai%
    Set /p MDP=Entez le mot de passe pour continuer:
    if not %MDP% == (mot de passe) goto erreur
    echo Merci !
    goto fin

    :erreur
    cls
    set /a essai=%essai%-1
    if %essai%==0 goto shut
    goto debut

    :shut
    shutdown /l

    :fin
    Pause >NUL
    start explorer.exe >NUL
    exit

    Ouep je pense ne pas avoir fait d'erreur ^^
    0
    1. Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   24
       
      Ça fais beaucoup plus propre déjà ! Merci beaucoup.
      0
    2. Ben314 Messages postés 3302 Statut Membre 1 507
       
      j'avais oublié la fin ^^
      0
    3. Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   24
       
      J'ai vu ^^

      :fin
      start explorer.exe
      0
    4. Ben314 Messages postés 3302 Statut Membre 1 507
       
      Une fois que vous etes sur que sa tourne bien vous pouvez rajouter break off en 2 éme ligne...
      0
    5. Ylann Messages postés 235 Date d'inscription   Statut Membre Dernière intervention   24
       
      Ce qui sert à ?
      0