Aqui está uma boa discussão do Stackoverflow .
Apenas curioso. Pessoas "legais" em nossa empresa sempre usam * .cmd enquanto ninguém foi capaz de explicar a diferença para mim.
Aqui está uma boa discussão do Stackoverflow .
Existem diferenças semânticas na linguagem de comando usada para cada uma delas ( .bat
arquivos obtêm uma versão de compatibilidade). Algumas delas podem ser ilustradas por este script em aqui :
@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
Basicamente, .cmd
arquivos obtêm a versão atual e mais sexy da linguagem de comandos do MS, e é por isso que as crianças legais os usam.
De acordo com a Wikipedia:
.bat: A primeira extensão usada pela Microsoft para arquivos em lote. Essa extensão pode ser executada na maioria dos sistemas operacionais da Microsoft, incluindo o MS-DOS e a maioria das versões do Microsoft Windows.
.cmd: A extensão .cmd mais recente é descrita pelos sistemas baseados no Windows NT como 'Windows NT Command Script' e é útil, pois usar uma extensão .cmd em vez de extensão .bat significa que as versões anteriores do Windows não sabe como executá-lo, para que eles não tentem e confundam os comandos dos arquivos de estilo do COMMAND.COM e não executem os novos comandos de estilo devido à falta de extensões de comando, resultando na execução parcial de scripts, o que pode ser comprovado danificar (por exemplo; falha ao verificar a cópia bem-sucedida de um arquivo e, em seguida, excluir o original de qualquer maneira).
A única diferença conhecida entre o processamento do arquivo .cmd e .bat é que em um arquivo .cmd a variável ERRORLEVEL é alterada mesmo em um comando bem-sucedido que é afetado pelas extensões de comando (quando as extensões de comando estão ativadas), enquanto em arquivos .bat a variável ERRORLEVEL é alterada apenas em erros.
Espero que isso ajude.
Em teoria, .cmd é mais "trueЪ" :) porque .bat é um script para o antigo command.com do DOS enquanto .cmd é para o cmd.exe do Windows NT, o último tem um pouco mais de script melhorado. Na vida real, normalmente ambos são iguais, como escrever / bin / sh ou / bin / bash no Linux (distribuições médias em que sh é realmente bash)
Eu vi pela primeira vez o formato .cmd usado no OS / 2. Se você está pensando em termos do DOS, é como um arquivo .bat em esteróides. Arquivos .bat foram introduzidos primeiro em DOS tipo OS's. Muita da sintaxe é semelhante, exceto quando você começa a entrar em funções avançadas. Além disso, um arquivo .cmd tem o potencial de não funcionar em um ambiente de 16 bits (win98), enquanto um arquivo .bat provavelmente funcionará em todos os ambientes.