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 :

appeler un bat affichant un état des variables régulièrement - help please [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut appeler un bat affichant un état des variables régulièrement - help please
    salut !

    je suis pas programmeur de métier mais autodidacte et je me soigne

    Pour simplifier, j'ai donc un fichier principale par exemple go.bat qui contient :

    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
    echo off
    SET VERSION=2018-07-10-v164
    call ETAT.BAT
    :: ensuite, je pisse plein de code qui dans la fenêtre principale efface mon ETAT.BAT
    .
    SET VERSION=2018-07-10-v165
    .
    .
    .
    :: enfin je relance régulièrement ETAT.BAT pour ré afficher mes variables....
    call ETAT.BAT
    :: ensuite, je pisse plein de code qui dans la fenêtre principale efface mon ETAT.BAT
    .
    .
    .
    .
    call ETAT.BAT
    etc etc...
    mon fichier ETAT.BAT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cls
    mode con lines=500 cols=120
    ECHO V%VERSION%
    .
    .
    .
    .
    Bref, est-il possible de garder donc une seconde fenêtre dos/cmd avec l'ETAT.BAT, qui pourquoi pas ne se ferme pas, mais se tient à jour en fonction de mes updates de variables venant du GO.BAT ?

    ::ps en fait dans mon batch, je copie des trucs, je modifie des états de services, j'installe etc... bref mon tableau d'état ne reste pas longtemps visible et donc je voudrais connaitre presque en temps réel, le suivi de l'évolution du travail effectué.


    Merci d'avance à tout le monde.
    Philippe

  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
    Qu'est ce qui ne va pas avec ce que tu fait actuellement ?

    - Je ne vois pas la variable VERSION modifiée, elle l'est ?
    - J'utiliserai une étiquette au lieu d'un second batch.
    - Pourquoi ne pas demander d'afficher la nouvelle version au moment ou elle est modifiée ?
    - Si tu souhaite avoir deux fenêtres batch persistantes, avec la seconde qui t'affiche le contenu d'une variable de la première tu ne peux pas nativement. Tu devra passer par un flag (fichier, registre...) écrit par la première et lu/affiché par la deuxième.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Qu'est ce qui ne va pas avec ce que tu fait actuellement ?

    - Je ne vois pas la variable VERSION modifiée, elle l'est ?
    houps oui je viens de la rajouté désolé
    - J'utiliserai une étiquette au lieu d'un second batch.
    - Pourquoi ne pas demander d'afficher la nouvelle version au moment ou elle est modifiée ?
    - Si tu souhaite avoir deux fenêtres batch persistantes, avec la seconde qui t'affiche le contenu d'une variable de la première tu ne peux pas nativement. Tu devra passer par un flag (fichier, registre...) écrit par la première et lu/affiché par la deuxième.
    hummm oui effectivement le batch principale est pas top a regarder, donc l'idée est d'afficher un second qui contient les maj des variables. je vais chercher sur le fofo ta proposition. merci à toi

  4. #4
    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
    Je ne trouve pas top le kill. Ça va piquer les yeux à se fermer et s'ouvrir tout le temps.

    Les .bat soit au même endroit ?

  5. #5
    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
    Je te donne un exemple simple, peut être pas très joli.

    principal.bat
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    @echo off
     
    SET VERSION=2018-07-10-v164
    call :WriteFlag
    start "" "cmd /c %~dp0info.bat"
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    SET VERSION=2018-07-10-v165
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
     
    SET VERSION=2018-07-10-v166
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    SET VERSION=2018-07-10-v167
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    SET VERSION=2018-07-10-v168
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    call :DelFlag
    pause
    exit
     
    :WriteFlag
    (echo V%VERSION%
    echo heure:%time%
    )>"%~dp0info.flag"
    goto :eof
     
    :DelFlag
    del "%~dp0info.flag"
    goto :eof

    info.bat (dans le même dossier que principal.bat)
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    cls
    title Affiche les informations
    mode con lines=500 cols=120
     
    for /L %%a in (0,0,1) do (
    	IF NOT EXIST "%~dp0info.flag" exit
    	cls
    	type "%~dp0info.flag"
    	timeout /T 1 /nobreak >nul
    )

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut merci mais petit aménagement :) :) :) :)
    merci pour ton exemple c'est cool.

    hummm par contre d'après mes tests sur ton code, juste après
    start "" "cmd /c %~dp0info.bat"
    la fenêtre s'ouvre et se ferme de suite.le script principale continue......en mettant en pause le script principale on observe bien la modification de info.flag dans le dossier.
    je me doute bien que ton code pourtant copier coller ne fonctionne pas comme chez vous(toi).
    c'est du au comportement de mon pc sous windows 10 ?

    bref, la première fenêtre aurait du t-elle rester ouverte et se mettre à jour dans votre exemple ?

    j'ai donc remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start "" "cmd /c %~dp0info.bat"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start "" "%~dp0info.bat"
    je crois que vous (tu) m'avez sauvé de mes galères. Il ne reste plus qu'à adapter tout çà à mon code. Génial....

    Vous avez des doigts magiques hahahahah
    Merci encore et merci au fofo d'être là.

    Citation Envoyé par ericlm128 Voir le message
    Je te donne un exemple simple, peut être pas très joli.

    principal.bat
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    @echo off
     
    SET VERSION=2018-07-10-v164
    call :WriteFlag
    start "" "cmd /c %~dp0info.bat"
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    SET VERSION=2018-07-10-v165
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
     
    SET VERSION=2018-07-10-v166
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    SET VERSION=2018-07-10-v167
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    SET VERSION=2018-07-10-v168
    call :WriteFlag
     
    echo Je boose
    timeout /T 3 /nobreak >nul
     
    call :DelFlag
    pause
    exit
     
    :WriteFlag
    (echo V%VERSION%
    echo heure:%time%
    )>"%~dp0info.flag"
    goto :eof
     
    :DelFlag
    del "%~dp0info.flag"
    goto :eof

    info.bat (dans le même dossier que principal.bat)
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    cls
    title Affiche les informations
    mode con lines=500 cols=120
     
    for /L %%a in (0,0,1) do (
    	IF NOT EXIST "%~dp0info.flag" exit
    	cls
    	type "%~dp0info.flag"
    	timeout /T 1 /nobreak >nul
    )

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut
    une autre piste serait d'ouvrir donc un cmd que je nomme. dans celui-ci j'execute l'ETAT.bat pour afficher les maj des données. il rentre en standbye.
    dans le le cmd maitre (go.bat) je continue mon traitement.
    je recherche le processus cmd que j'avais lancé auparavent pour le killer et je le relance non ?
    mais je ne sais pas trop utiliser le wmic pour cela.

    aller je me lance : go.bat
    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
    echo off
    cd %systemdrive%%~P0%
    set QUELOS=NONE
    :: ci-dessous je lance donc le var.bat mais je redonne la main à go.bat, au passage le cmd prend le nom dans le titre ETAT-VARIABLE, c'est celui-ci que je voudrais killer plus tard
    start "ETAT-VARIABLE" var.bat
    
    :: je modifie ma variable
    set QUELOS=windows10
    :: je rajoute un peu de temps pour voir ce qu'il se passe - équivalent a du pissage de code :)
    TIMEOUT /T 4
    
    :: je kill le cmd lié au var.bat :: ou un truc du style : wmic process where name="ETAT-VARIABLE" CALL Terminate 
    WMIC PROCESS WHERE "COMMANDLINE LIKE '%var.bat%'" CALL TERMINATE
    :::: il me dit : Aucune instance disponible.
    
    :: je le relance
    start "ETAT-VARIABLE" var.bat
    ps: j'ai bien pensé à lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cmd /k start "ETAT-VARIABLE" var\var.bat
    mais de ce fait le batch s’arrête pour débogage donc je ne trouve pas.

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

Discussions similaires

  1. Script shell : afficher le contenu des variables entre simple quote
    Par mualki dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 23/01/2010, 00h14
  2. Afficher l'état des registres processeur
    Par sorry60 dans le forum C
    Réponses: 9
    Dernier message: 11/06/2009, 10h27
  3. Suivre l'état des variables lors d'un débugage
    Par dz_robotix dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/10/2008, 12h09
  4. Fenetre qui affiche l'état des variables
    Par Irken dans le forum Windows
    Réponses: 1
    Dernier message: 30/01/2008, 07h51
  5. [DOS] Afficher l'état des leds : Scroll, num, cap
    Par Dayssam dans le forum Contribuez
    Réponses: 0
    Dernier message: 14/01/2008, 15h33

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