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 :

Poursuite du programme après un redémarage


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 16
    Par défaut Poursuite du programme après un redémarage
    Bonjour,

    Je souhaite réaliser un programme BAT donc l’exécution ne serait pas arrêtée par un redémarrage.
    Le but est d'installer (dans l'ordre, sans trop se faire ch..r) les mises à jour de Windows 7 à partir d'une sauvegarde locale des fichiers de mises à jours Microsoft.

    J'ai essayé les commandes "SHUTDOWN" sans succès:
    -le programme BAT est fermé

    Auriez-vous une solution à me proposer?

  2. #2
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Salut,

    Tu as plusieurs possibilités, celles qui me viennent en tête sont:
    Inscrire dans le registre "au prochain reboot tu exécutes tel .bat"
    ou
    Placer ton .bat dans le dossier "Démarrage" de tous les utilisateurs.

    Registre:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "Un_Titre_De_Cle" /t REG_SZ /d "CHEMIN_VERS_TON_SCRIPT\TON_SCRIPT.bat" /f

    Sinon coller dynamiquement dans:
    "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 16
    Par défaut
    Merci de ta réponse,
    mais si j'ai bien compris, les 2 solutions que tu me propose on l’inconvénient de faire redémarrer le programme au début et non de le laisser poursuivre.

    En langage plus clair, si je lui dis:
    ..., installation de la mise à jour 164, installation de la mise à jour 165,...
    En redémarrant, Le programme aura envie de reprendre à la mise à jour n°1.
    Sauf si j'utilise un système qui permet au programme de savoir à quelle étape il en est mais ça risque d'être assez lourd niveau programmation.
    Si possible, j'aurais préférer éviter ça.

    Le registre... il me semble que c'est un peu au dessus de mes compétences d'aller bidouiller dedans

  4. #4
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    DevilSnake

    Tu peux mettre la valeur de la mise MAJ dans un fichier txt.

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo 165 >state.txt
    code d'installation de la MAJ 165
    et lorsque tu reboot tu sais que la 165 est installé


    C'est la seul solution que j'entrevoie


  5. #5
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2016
    Messages : 16
    Par défaut
    il me semble qu'on peut afficher un fichier texte à partir des commandes "BAT" mais pas le lire pour le réutiliser
    (En tout cas, je ne sais pas le faire)

    Dans ce cas, cela vaudrais dire qu'il me faudrait un petit programme d'initialisation qui me fournirait une variable que je peux réutiliser ensuite?
    du style

    echo set %state%=165>initialisation.bat
    puis exécution initialisation.bat
    puis GOTO %state%

    Devilsnake, que veux-tu dire par "coller dynamiquement"?
    (ps: bonne nuit à tous)

  6. #6
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Exactement, (Et tu peux facilement lire le contenue d'un fichier en bat) Donc :

    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
    @echo off
    if exist "state.txt" (
    ::Si il existe on récupère la valeur dans state.txt
      set /p $state=<state.txt
    :: et on va dans :next
      goto:next 
    )
    :: On set $state a 1 si state.txt n'existe pas 
    set "$state=1"
    
    :next
    ::On incrèmente l'état de state de 1
    set /a $NewState=%$state%+1
    ::On écrie la nouvelle valeur dans state.txt
    echo %$NewState%>state.txt
    ::On lançe l'actualisation correspondante
    MAJ_%$state%.bat

  7. #7
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Citation Envoyé par sachadee Voir le message
    Salut,

    DevilSnake
    Dit donc toi, tu complotes contre moi pendant mon sommeil!
    N'as-tu pas honte?!

    Quitte à inscrire la valeur du nombre de MAJ quelque part, autant créer une clé de registre temporaire pour le coup, le .txt je l'utilise si j'ai beaucoup d'infos à enregistrer.

    Citation Envoyé par Old_Win Voir le message
    Devilsnake, que veux-tu dire par "coller dynamiquement"?
    En gros dans ton script tu copies ton .bat où tu veux via XCOPY/COPY/ROBOCOPY/etc...

    J'aimerais bien voir c'est ton code actuel.

    Aller debout feignasses!

Discussions similaires

  1. bug du programme apres utilisation de dialog
    Par avogadro dans le forum Delphi
    Réponses: 13
    Dernier message: 07/06/2006, 15h33
  2. Réponses: 2
    Dernier message: 05/06/2006, 16h53
  3. Afficher mon programme après réduction
    Par Coussati dans le forum Langage
    Réponses: 14
    Dernier message: 31/01/2006, 00h25
  4. démarrer un programme après tous les services
    Par chtiot dans le forum Langage
    Réponses: 8
    Dernier message: 05/11/2005, 06h45
  5. Lancer automatiquement un programme après connexion Internet
    Par sunshine dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 27/05/2005, 22h18

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