3

Я определил функцию, странно то, что строки функций выполняются, даже если я НЕ вызываю функцию !!

echo off
cls
REM call:ctrlService "stop" "1.1.1.1"
echo.SERVICES STARTED
:ctrlService - Generic function
echo.Parameter 1: %~1
echo.Parameter 2: %~2
dir
GOTO:EOF
echo on

Я вижу выполненные операторы echo без отображаемых значений соответствующих параметров. И команда dir тоже выполнена!

Как я могу остановить выполнение функции самостоятельно?

1 ответ1

5

Добавление метки просто добавляет метку. Это не изменяет поток через ваш командный файл.

Если вы хотите пропустить часть командного файла, вам придется перепрыгнуть через него.

Например

    @echo off
    echo Your batch file has started. Jumping to main.
    GOTO :MAIN

    :function_label
    some_command
    some_command

    :MAIN
    some_command

Это позволит перейти к основной части командных файлов, пропуская функции.
Без этого перехода сначала будет достигнута функция, которая будет выполнена, а затем поток пойдет вниз.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .