Подтвердить что ты не робот

Cmd.exe: когда использовать вызов для запуска внешних программ

Кажется, что cmd script, содержащий:

prog1
prog2

делает то же самое, что и

call prog1
call prog2

В чем смысл использования команды CALL?

4b9b3361

Ответ 1

Вы должны использовать call, когда вам нужно вызвать другую пакетную программу (cmd script). Использование "вызова" не будет иметь никакого эффекта, если prog1 является исполняемым файлом. (prog1.exe)

Если вы, например, имеете два сценария:

cmd1.cmd
cmd2.cmd

И внутри cmd1.cmd у вас есть строка:

cmd2.cmd

... тогда ваш script остановится, как только будет завершен cmd2.cmd. Вместо этого вы должны использовать:

call cmd2.cmd

Ответ 2

Вы должны использовать call, если хотите:

  • вызовите другой командный файл и вернитесь к нему, когда это будет сделано.; или
  • вызов функции в текущем файле команды.

Командный файл с линией:

number2.cmd

будет привязана к файлу number2.cmd, то есть он запустит это script, но не вернется, чтобы продолжить выполнение на текущем.

Что касается второго момента, вы можете делать такие вещи, как:

call :subroutine
call :subroutine
goto :eof

:subroutine
    echo in here
    goto :eof

и вы получите дважды in here. Эта возможность вызова функций в командных сценариях на самом деле весьма удобна.

Ответ 3

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

Обратите внимание, что если пакетный файл не существует, он выдаст сообщение об ошибке.

Синтаксис

: CALL [drive:][path]filename [batch-parameters]

Нет ограничений в том, где его можно назвать. Вы можете использовать команду CALL в любом пакетном файле для вызова другого командного файла.

Надеюсь, что это поможет.