对于call,“同一进程,变量互通”。
对于start,概括两句话:“不同进程不能传值”,“相同进程单向传值,老子传儿子,非儿子传老子”。
|
|
|
|
|
|
|
|
|
|
|
|
|
用call: 应用示例中在main中定义了变量a,值为1,在child中定义了变量b,值为20, Main.bat首先执行child.bat, child.bat将执行echo %a%, 能正常显示1 call完之后再执行echo %b%,能正常显示20 call的时候,他们拥有同一个壳cmd.exe,在同一个进程当中,所以他们的变量是互通的 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
用start: main.bat首先执行child.bat, child.bat执行echo %a%可以在子进程窗口中显示main中的变量a的值1 然后Main.bat执行echo %b%, 但是父进程无法访问子进程,所以不能显示变量b的指20 他们拥有两个壳cmd.exe,但child.bat可以看成是main.bat的子进程,子进程可以读取父进程中的变量(即a的值)。 |
|
|
|
|
|