Кажется, что cmd script, содержащий:
prog1
prog2
делает то же самое, что и
call prog1
call prog2
В чем смысл использования команды CALL?
Кажется, что cmd script, содержащий:
prog1
prog2
делает то же самое, что и
call prog1
call prog2
В чем смысл использования команды CALL?
Вы должны использовать call, когда вам нужно вызвать другую пакетную программу (cmd script). Использование "вызова" не будет иметь никакого эффекта, если prog1 является исполняемым файлом. (prog1.exe)
Если вы, например, имеете два сценария:
cmd1.cmd
cmd2.cmd
И внутри cmd1.cmd у вас есть строка:
cmd2.cmd
... тогда ваш script остановится, как только будет завершен cmd2.cmd. Вместо этого вы должны использовать:
call cmd2.cmd
Вы должны использовать call, если хотите:
Командный файл с линией:
number2.cmd
будет привязана к файлу number2.cmd, то есть он запустит это script, но не вернется, чтобы продолжить выполнение на текущем.
Что касается второго момента, вы можете делать такие вещи, как:
call :subroutine
call :subroutine
goto :eof
:subroutine
echo in here
goto :eof
и вы получите дважды in here. Эта возможность вызова функций в командных сценариях на самом деле весьма удобна.
Обычно вызов используется для запуска другого командного файла в пакетном файле. Когда пакетный файл, который вызывается, завершен, остаток исходного командного файла завершается.
Обратите внимание, что если пакетный файл не существует, он выдаст сообщение об ошибке.
Синтаксис: CALL [drive:][path]filename [batch-parameters]
Нет ограничений в том, где его можно назвать. Вы можете использовать команду CALL в любом пакетном файле для вызова другого командного файла.
Надеюсь, что это поможет.