Windows 批处理文件 : . bat vs .cmd?

标签 windows batch-file cmd

据我了解,.bat 是旧的 16 位命名约定,而 .cmd 适用于 32 位 Windows,即以 NT 开头。但我继续看到 .bat 文件无处不在,它们似乎使用任一后缀都完全相同。假设我的代码永远不需要在 NT 之前的任何版本上运行,那么我命名我的批处理文件的方式真的很重要吗,或者是否有一些陷阱在等待我使用错误的后缀?

最佳答案

来自 this news group posting通过 Mark Zbikowski他自己:

The differences between .CMD and .BAT as far as CMD.EXE is concerned are: With extensions enabled, PATH/APPEND/PROMPT/SET/ASSOC in .CMD files will set ERRORLEVEL regardless of error. .BAT sets ERRORLEVEL only on errors.

换句话说,如果将 ERRORLEVEL 设置为非 0,然后您运行这些命令之一,则生成的 ERRORLEVEL 将是:

  • 在 .bat 文件中单独保留其非 0 值
  • 在 .cmd 文件中重置为 0。

关于Windows 批处理文件 : . bat vs .cmd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/148968/

相关文章:

windows - 需要 Windows 中的启动脚本来发送 ALT+F11 键吗?

windows - 自动 DPC 延迟测试 - 如何?

windows - 无论如何让程序共享 Windows 资源管理器图标覆盖?

powershell - Connect-PnPOnline:术语 'Connect-PnPOnline'不被识别为cmdlet,函数,脚本文件或可运行程序的名称

windows - 有没有办法从 BAT 文件关闭进程的单个窗口?

windows - 如何找到批量创建的最后一个目录

windows - 在 Windows 中为 gvpack 合并多个 graphviz DOT 文件

python - 使用 Enthought Canopy Python 在 Windows 上安装 OpenCV 的最佳方法?

python - 生成并要求输入随机生成的密码

java - 在python子进程中发送字符串作为参数