.cmd和.bat文件有什么区别?


Answers:



11

每种命令的语言都有语义上的差异(.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

基本上,.cmd文件会获得最新,更性感的MS命令语言版本,这就是为什么酷孩子使用它们的原因。


2
<3模糊的cmd脚本:)
grawity

!我站得住了。我以前从不知道CMD.EXE的行为。
埃文·安德森

6

根据维基百科:

.bat:Microsoft用于批处理文件的第一个扩展名。此扩展名可以在大多数Microsoft操作系统(包括MS-DOS和大多数Windows版本)中运行。

.cmd:较新的.cmd扩展名在基于Windows NT的系统中称为“ Windows NT命令脚本”,并且很有用,因为使用.cmd扩展名而不是.bat扩展名意味着较早版本的Windows将不知道如何运行它,以使他们不会尝试将COMMAND.COM样式文件的命令弄错,并且由于缺少命令扩展名而导致运行新样式的命令失败,从而导致脚本仅部分运行,这可能会造成破坏(对于例如;无法检查文件的成功复制,然后仍然删除原始文件)。

.cmd和.bat文件处理之间的唯一已知区别是,在.cmd文件中,即使对受命令扩展名影响的成功命令(启用命令扩展名),ERRORLEVEL变量也会更改,而在.bat文件中,ERRORLEVEL变量会更改仅在出错时更改。

希望这可以帮助。


1

从理论上讲,.cmd更“真实” :),因为.bat是旧DOS command.com的脚本,而.cmd是Windows NT中的cmd.exe的脚本,最后一个脚本的脚本有所改进。在现实生活中,两者通常是相等的,例如在Linux中编写/ bin / sh或/ bin / bash(意味着sh实际上是bash的平均发行版)


0

我首先看到OS / 2下使用的.cmd格式。如果您以DOS方式考虑,它就像类固醇上的.bat文件。.bat文件是在DOS类型的操作系统下首先引入的。除了开始使用高级功能外,许多语法都相似。此外,.cmd文件可能无法在16位环境(win98)中工作,而.bat文件可能会在所有环境中工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.