Difference between call and cmd /c in windows batch

后端 未结 1 877
天涯浪人
天涯浪人 2021-01-06 01:47

Can someone please explain what\'s the difference between

call someBatchFile.bat ...

And

cmd /C someBatchFile.bat ...
         


        
1条回答
  •  再見小時候
    2021-01-06 02:20

    The difference is that call execute the other Batch file in the same context of the caller program, so they share the same environment variables and other status (like echo ON/OFF or delayed expansion), whereas cmd /C execute the other Batch file in an entirely separated context, so any change made in the called Batch file is not reflected in the original file.

    Just as a personal note, I used to name internal subroutine the Batch file invoked via call, and external subroutine the one invoked via cmd /C (and overlay the Batch file directly invoked without call nor cmd /C, that inherits the behavior and context of the caller Batch file).

    0 讨论(0)
提交回复
热议问题