我有 3 个批处理文件,我们将它们称为 batchA、batchB 和 batchC。我双击 batchA,随后脚本中出现了call batchB
and call batchC
。运行时我只看到一个 CMD.exe 进程,任务管理器的“应用程序”选项卡仅显示 batchA。它是如何工作的?它是作为单个进程中的线程运行的,还是分叉并创建多个进程(我只是没有注意到)?在这种情况下是 Windows XP 32 位,但我也会接受适用于 Windows 7 64 的答案。
答案1
该CALL
命令在第一个批处理文件的上下文中执行第二个批处理文件。就好像第一个批处理文件包含第二个批处理文件的内容而不是命令一样CALL
。只有一个cmd.exe
进程,只有一个线程(第二个批处理文件执行时,第一个批处理文件的执行被暂停)。