Разница между вызовом и cmd / c в пакете Windows

windows batch-file cmd call

3910 просмотра

1 ответ

Может кто-нибудь объяснить, в чем разница между

call someBatchFile.bat ...

А также

cmd /C someBatchFile.bat ...

Они оба были предложены мне в качестве решения этой проблемы, но я не понимаю, почему они оба работают, и что более важно, если есть какие-то существенные различия, о которых я должен знать.

Автор: carlossierra Источник Размещён: 08.11.2019 11:26

Ответы (1)


8 плюса

Решение

Разница заключается в том, callчто другой пакетный файл выполняется в том же контексте, что и вызывающая программа, поэтому они совместно используют одни и те же переменные среды и другое состояние (например, echo ON/OFFили отложенное расширение), тогда cmd /Cкак другой пакетный файл выполняется в совершенно отдельном контексте, поэтому любое изменение сделанные в вызываемом пакетном файле не отражаются в исходном файле.

Так же, как личное примечание, я использовал имя внутренней подпрограммы, вызываемой через Batch-файл call, и внешней подпрограммы, вызываемой через cmd /Cперекрывающий Batch-файл, вызываемый напрямую без callnor cmd /C, который наследует поведение и контекст Batch-файла вызывающей программы).

Автор: Aacini Размещён: 20.08.2016 06:01
Вопросы из категории :
32x32