Sólo curioso. Las personas "geniales" en nuestra empresa siempre usan * .cmd mientras que nadie fue capaz de explicarme la diferencia.
Sólo curioso. Las personas "geniales" en nuestra empresa siempre usan * .cmd mientras que nadie fue capaz de explicarme la diferencia.
Respuestas:
Aquí hay una buena discusión de Stackoverflow .
Existen diferencias semánticas en el lenguaje de comando utilizado para cada uno (los .bat
archivos obtienen una versión de compatibilidad). Algunos de estos pueden ilustrarse con este script desde aquí :
@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
Básicamente, los .cmd
archivos obtienen la versión actual y más sexy del lenguaje de comandos de MS, razón por la cual los niños geniales los usan.
De acuerdo con Wikipedia:
.bat: la primera extensión utilizada por Microsoft para archivos por lotes. Esta extensión se puede ejecutar en la mayoría de los sistemas operativos de Microsoft, incluidos MS-DOS y la mayoría de las versiones de Microsoft Windows.
.cmd: la nueva extensión .cmd es descrita por los sistemas basados en Windows NT como un 'Script de comando de Windows NT' y es útil, ya que usar una extensión .cmd en lugar de la extensión .bat significa que las versiones anteriores de Windows no sabrán cómo ejecutarlo, para que no intenten confundir los comandos de los archivos de estilo COMMAND.COM y no puedan ejecutar los nuevos comandos de estilo debido a la falta de extensiones de comandos, lo que da como resultado que los scripts se ejecuten solo parcialmente, lo que podría resultar perjudicial (para ejemplo; no verificar la copia exitosa de un archivo y luego eliminar el original de todos modos).
La única diferencia conocida entre el procesamiento de archivos .cmd y .bat es que en un archivo .cmd la variable ERRORLEVEL cambia incluso en un comando exitoso que se ve afectado por las Extensiones de comando (cuando las Extensiones de comando están habilitadas), mientras que en los archivos .bat la variable ERRORLEVEL cambia solo ante errores.
Espero que esto ayude.
En teoría .cmd es más "verdaderoЪ" :) porque .bat es un script para el antiguo comando.com de DOS, mientras que .cmd es para cmd.exe de Windows NT, el último tiene un script un poco más mejorado. En la vida real, generalmente ambos son iguales, como escribir / bin / sh o / bin / bash en Linux (distribuciones medias donde sh es realmente bash)
La primera vez que vi el formato .cmd utilizado en OS / 2. Si está pensando en términos de DOS, es como un archivo .bat con esteroides. Los archivos .bat se introdujeron primero en sistemas operativos tipo DOS. Gran parte de la sintaxis es similar, excepto cuando comienza a acceder a funciones avanzadas. Además, un archivo .cmd tiene el potencial de no funcionar en un entorno de 16 bits (win98) mientras que un archivo .bat probablemente funcionará en todos los entornos.