6 votes

La fonction du fichier batch est exécutée sans être appelée.

J'ai défini une fonction, la chose étrange est que les lignes de la fonction sont exécutées même si je ne NE l'appelle pas !!

echo off
cls
REM call:ctrlService "stop" "1.1.1.1"
echo.SERVICES STARTED
:ctrlService - Fonction générique
echo.Paramètre 1: %~1
echo.Paramètre 2: %~2
dir
GOTO:EOF
echo on

Je vois les instructions echo exécutées, sans les valeurs affichées pour les paramètres relatifs. Et la commande dir est également exécutée !

Comment puis-je empêcher la fonction d'être exécutée toute seule ?

9voto

Hennes Points 63532

Ajouter une étiquette ne fait que ajouter une étiquette. Cela n'altère pas le flux de votre fichier batch.

Si vous voulez sauter une partie d'un fichier batch, alors vous devrez sauter par-dessus.

Par exemple.

    @echo off
    echo Votre fichier batch a démarré. Sautant vers le principal.
    GOTO :MAIN

    :function\_label
    some\_command
    some\_command

    :MAIN
    some\_command

Cela passera à la partie principale des fichiers batch, en sautant les fonctions.
Sans ce goto, la fonction sera atteinte en premier, exécutée, puis le flux passera vers le bas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X