Art*_*rov 38 windows batch-file windows-command-prompt
只是好奇。我们公司的“酷”人总是使用 *.cmd 而没有人能够向我解释其中的区别。
cha*_*aos 15
用于每种语言的命令语言存在语义差异(.bat文件获得兼容版本)。其中的一些可以通过这个脚本来说明在这里:
@echo off&setlocal ENABLEEXTENSIONS
call :func&&echo/I'm a cmd||echo/I'm a bat
goto :EOF
:func
md;2>nul
set var=1
Run Code Online (Sandbox Code Playgroud)
基本上,.cmd文件获取当前的、更性感的 MS 命令语言版本,这就是酷孩子使用它们的原因。
squ*_*man 15
KPW*_*INC 13
根据维基百科:
.bat:Microsoft 用于批处理文件的第一个扩展名。此扩展可以在大多数 Microsoft 操作系统中运行,包括 MS-DOS 和大多数版本的 Microsoft Windows。
.cmd:较新的 .cmd 扩展名被基于 Windows NT 的系统描述为“Windows NT 命令脚本”并且很有帮助,因为使用 .cmd 扩展名而不是 .bat 扩展名意味着早期版本的 Windows 将不知道如何运行它,这样他们就不会尝试错误地将命令用于 COMMAND.COM 样式文件,也不会由于缺少命令扩展而无法运行新样式命令,从而导致脚本仅部分运行,这可能会造成破坏(对于例如;未能检查文件的成功复制,然后仍然删除原始文件)。
.cmd 和 .bat 文件处理之间唯一已知的区别是,在 .cmd 文件中,即使在受命令扩展(启用命令扩展时)影响的成功命令上,ERRORLEVEL 变量也会更改,而在 .bat 文件中,ERRORLEVEL 变量仅在错误时更改。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
38761 次 |
| 最近记录: |