Mon script batch ne fonctionne pas comme je le voudrais...

Fermé
Nenes9500 - 28 janv. 2022 à 23:17
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 - 29 janv. 2022 à 18:03
Bonjour!
J'ai créé un fichier batch censé effectuer plusieurs actions(répertoriées dans des fichiers .bat différents ) à la suite mais il n'effectue que la première...
Voilà les fichiers:
Le fichier de base:

:Config

REM 1=true, 0=false
set /A commande1 = 1
set /A commande2 = 1

:Start

if %commande1% == 1 (GOTO :action1) else (GOTO :-action1-)

:action1

commande1.bat
GOTO :-action1-

:-action1-

if %commande2% == 1 (GOTO :action2) else (GOTO :-action2-)

:action2

echo l'action 2 fonctionne

:-action2-


Fichier action1.bat:

start cmd /c "cd/d [REPERTOIRE] & timeout /t 1 & action1.bat & timeout /t 5 & exit"


Le fichier action1.bat est une boucle infinie, mais s'arrête lorsqu'on ferme la dernière fenêtre ouverte par celui-ci, mais pendant ce temps l'action 2 ne s'exécute pas...
Que faire pour qu'elle s'exécute quand même?
A voir également:

2 réponses

barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905
29 janv. 2022 à 06:58
Bonjour,

Pour que le script puisse poursuivre, il faut lancer action1.bat à l'aide de la commande START.

1
Merci à toi! Tu me sauves la vie!
0
Par contre, aurais tu une solution pour que le script action2 s'exécute seulement quand le action 1 est stoppé?
0
barnabe0057 Messages postés 14439 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 14 avril 2024 4 905 > Nenes9500
29 janv. 2022 à 18:03
Dans l'état actuel des choses ton script ressemble fortement à un malware, par conséquent à moins que tu me fournisses une explication je ne souhaite pas t'aider davantage.
0
kaumune Messages postés 22360 Date d'inscription lundi 26 novembre 2007 Statut Contributeur Dernière intervention 17 avril 2024 5 033
Modifié le 29 janv. 2022 à 07:54
GOTO :-action1-

:-action1-



Slt
Il ne faut pas mettre les deux points dans le GOTO, juste le nom de l'étiquette

Exemple :
echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.


SOURCE

A modifier dans tous tes GOTO

GOTO -action1-

:-action1-


Sinon pour appeler un bat dans un bat, j’utilise la fonction CALL
1
Merci à toi pour tes conseils!
0