cmd.exe:何时使用调用运行外部程序

cmd.exe:何时使用调用运行外部程序,cmd,Cmd,似乎cmd脚本包含: prog1 prog2 与 call prog1 call prog2 使用CALL命令有什么意义?通常,CALL用于在批处理文件中运行另一批处理文件。调用的批处理文件完成后,原始批处理文件的其余部分完成 注意:如果批处理文件不存在,它将给出错误消息 语法是:CALL[drive:][path]filename[batch参数] 在何处调用它没有限制。可以在任何批处理文件中使用CALL命令调用另一个批处理文件 希望这有帮助。当您需要调用另一个批处理程序(cmd脚本)时,

似乎cmd脚本包含:

prog1
prog2

call prog1
call prog2

使用CALL命令有什么意义?

通常,CALL用于在批处理文件中运行另一批处理文件。调用的批处理文件完成后,原始批处理文件的其余部分完成

注意:如果批处理文件不存在,它将给出错误消息

语法是:
CALL[drive:][path]filename[batch参数]

在何处调用它没有限制。可以在任何批处理文件中使用CALL命令调用另一个批处理文件


希望这有帮助。

当您需要调用另一个批处理程序(cmd脚本)时,应该使用
call
。如果
prog1
是可执行文件,则使用“call”将无效。(
prog1.exe

例如,如果您有两个脚本:

cmd1.cmd
cmd2.cmd
cmd1.cmd
中有一行:

cmd2.cmd
。。。然后,只要
cmd2.cmd
完成执行,脚本就会停止。相反,您应该使用:

call cmd2.cmd

如果您想:

  • 调用另一个命令文件,完成后返回到此命令文件;或
  • 调用当前命令文件中的函数
命令文件中包含以下行:

number2.cmd
将链接到
number2.cmd
文件,这意味着它将运行该脚本,但不会返回以继续在当前脚本上执行

关于第二点,你可以做如下事情:

call :subroutine
call :subroutine
goto :eof

:subroutine
    echo in here
    goto :eof

您将在此处获得两次打印的
。这种在命令脚本中调用函数的能力实际上非常方便。

Aha-因此外部可执行文件和外部cmd脚本之间的区别是关键。谢谢你的启发,这是错误的。如果对可执行文件使用“调用”,则在可执行文件完成后,执行将返回到脚本。如果不使用call,整个过程将在可执行文件完成时结束,即使之后脚本中还有其他命令。@paxdiablo,你说的“链接到
number2.cmd
文件”是什么意思?@Pacerier,我的意思是完成后不会返回到当前脚本,几十年前,在我的基础编程时代,我一直坚持使用一个短语:-)请参阅以了解详细信息。我希望通过编辑使这一点更清楚。请看有更好的答案。