5

Похоже, что я могу использовать либо start либо call для выполнения командных файлов, однако я не уверен, почему вы используете один поверх другого. Каковы преимущества?

2 ответа2

11

call запускает данный скрипт внутри одного и того же экземпляра интерпретатора, поэтому его можно использовать только для пакетных файлов, но он позволяет вызываемому скрипту изменять среду вызывающей стороны с помощью set . В Windows NT call также позволяет вызывать метки как подпрограммы; например, call :foo .

С другой стороны, start использует функцию ShellExecute(), поэтому ее можно использовать для открытия практически всего, что может открыть сама Windows, включая документы, другие файлы и даже URL-адреса в Интернете. start также есть параметры, позволяющие открыть отдельное окно консоли, использовать разные приоритеты процесса и запустить программу, не дожидаясь ее завершения. Однако, если вы используете start с командным файлом, он будет выполняться в отдельном интерпретаторе, и любые изменения в среде не будут видны вызывающей стороне.

2
C:\>start /?
Starts a separate window to run a specified program or command.

C:\>call /?
Calls one batch program from another.

Вызов не запускается в новом окне и может использоваться для вызова подпрограммы с меткой.

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