制作Microsoft批处理文件时,即:保存
@echo off
:loop
echo HI!
goto loop
作为hiloop.bat
,代码如何工作?最初我认为它就像任何其他代码一样工作,比如C ++,但后来我读到了一个批处理文件直接在操作系统上运行的东西,或类似的东西使它非常有效,所以
microsoft .bat文件如何工作?
答案 0 :(得分:2)
它完全被解释为可能很慢。一个程序(命令行处理器)一次解释每一行,找出它想做什么,做它,并检查下一行或者去告诉它去哪里。
但是,由于批处理文件可以调用COM dll(基本上是编译程序)的帮助,因此在这些内容中执行的任何操作都非常有效。并且有成千上万的dll具有数据库访问,使用接口组件以及构建许多困难但传统的东西所需的大部分功能。
答案 1 :(得分:2)
以.bat结尾的批处理文件由command.com解释并在MS-DOS仿真下运行。
以.cmd结尾的批处理文件由cmd.exe解释并作为Windows控制台应用程序运行。
您可以使用“开始”,“运行”,然后键入command.com或cmd.exe以交互方式启动命令解释程序。它会提示您输入命令,并在您输入后执行每一行。批处理文件基本上只是提前指定命令,因此您不必键入它们。批处理文件未经过预处理或编译,因此几乎没有效率增益。
有些功能仅适用于批处理文件,例如goto命令,它允许您创建循环和分支来控制批处理文件中的执行流程。
答案 2 :(得分:0)
批处理文件由shell以解释的方式执行(在Windows中,这是cmd.exe
)。 shell从顶部开始读取文件的每一行,并将该行作为命令执行,就好像已将其键入命令提示符一样。
有一些例外,例如goto
命令,如果在命令提示符下键入它,则无效,但在批处理文件中执行时则无效。当看到goto
命令时,shell将返回到文件的开头并依次读取每一行,直到它找到goto
中指示的标签。然后它从那里开始执行。
上面的方法解释而不是编译,因此执行效率远低于C ++等编译语言。我永远不会称批处理文件“非常有效”。也许“非常 有效”。