Compartir a través de


Cmd

Inicia una nueva instancia del intérprete de comandos, cmd.exe. Si se usa sin parámetros, cmd muestra la versión y la información de copyright del sistema operativo.

Nota:

Se recomienda a los usuarios que buscan funcionalidades más avanzadas explorar PowerShell para mejorar el scripting y la automatización.

Sintaxis

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Parámetros

Parámetro Descripción
/c Lleva a cabo el comando especificado por <string> y, a continuación, sale del procesador de comandos.
/k Lleva a cabo el comando especificado por <string> y mantiene el procesador de comandos en ejecución.
/s Cuando se usa con /c o /k, desencadena reglas especiales que no son de análisis que quitan las comillas primera y última (") alrededor <string> del pero dejan sin cambios el resto del comando.
/q Desactiva el eco.
/d Deshabilita la ejecución de comandos AutoRun.
/un Da formato a la salida del comando como American National Standards Institute (ANSI).
/U Da formato a la salida del comando como Unicode.
/t:{<b><f> | <f>} Establece los colores de fondo (b) y primer plano (f).
/e:on Habilita las extensiones de comandos.
/e:off Deshabilita las extensiones de comandos.
/f:on Habilita la finalización del nombre de archivo y del directorio.
/f:off Deshabilita la finalización del nombre de archivo y directorio.
/v:on Habilita la expansión de variables de entorno retrasadas.
/v:off Deshabilita la expansión de variables de entorno retrasadas.
<string> Especifica el comando que desea llevar a cabo.
/? Muestra ayuda en el símbolo del sistema.

En la tabla siguiente se enumeran los dígitos hexadecimales válidos que puede usar como valores para <b> y <f>:

Importancia Color
0 Negro
1 Azul
2 Verde
3 Aguamarina
4 Rojo
5 Púrpura
6 Amarillo
7 Blanco
8 Gris
9 Azul claro
un Verde claro
b Aguamarina ligera
c Rojo claro
d Púrpura claro
e Amarillo claro
f Blanco brillante

Observaciones

  • Para redirigir la salida del comando a la entrada de otro comando, use el operador de canalización (|). Por ejemplo:

    <command1> | <command2>
    
  • El operador de canalización doble (||) se usa para ejecutar el siguiente comando solo si se produce un error en el comando anterior. En el escenario dado, command2 solo se ejecuta si command1 se produce un error. Por ejemplo:

    <command1> || <command2>
    
  • Para redirigir la salida del comando a un archivo, use el carácter de corchete > angular mayor que . Por ejemplo:

    <command1> > <file1.txt>
    
  • Para agrupar o anidar varios comandos, use &. Por ejemplo:

    <command1> & <command2>
    
  • Para usar varios comandos para <string>, separe mediante el separador &&de comandos . Por ejemplo:

    <command1> && <command2> && <command3>
    

    Nota:

    Cuando se usa &&, el comando siguiente && solo se ejecuta si el comando anterior se completa correctamente. Cmd ejecuta el primer comando y continúa con el siguiente solo si el comando anterior se realizó correctamente. De lo contrario, si se produce un error en el comando anterior, no se ejecutarán los comandos posteriores.

  • Los paréntesis y , la canalización &|y los paréntesis son caracteres ( ) especiales que deben ir precedidos por el carácter ^ de escape o las comillas al pasarlos como argumentos.

  • Si un comando completa correctamente una operación, devuelve un código de salida de cero (0) o ningún código de salida.

  • Si la ruta de acceso del directorio, los archivos o cualquier información que proporcione contiene espacios, debe usar comillas dobles (" ") alrededor del texto, como "Computer Name". Por ejemplo:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Debe usar comillas alrededor de los siguientes caracteres especiales: & <> [ ] | { } ^ = ; ! ' + , ' ~ [espacio en blanco].

  • Si especifica /c o , los /k procesos, el resto de cmdy las comillas solo se conservan si se cumplen todas <string>las condiciones siguientes:

    • Tampoco usa /s.
    • Usa exactamente un conjunto de comillas.
    • No se usan caracteres especiales entre comillas, por ejemplo: & <> ( ) @ ^ |.
    • Use uno o varios caracteres de espacio en blanco entre comillas.
    • Entre <string> comillas es el nombre de un archivo ejecutable.

    Si no se cumplen las condiciones anteriores, <string> se procesa examinando el primer carácter para comprobar si es una comilla de apertura. Si el primer carácter es una comilla de apertura, se quita junto con la comilla de cierre. Se conserva cualquier texto que siga las comillas de cierre.

  • Si no especifica /d, cmd busca las siguientes subclaves del Registro:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    Si hay una o ambas subclaves del Registro, se ejecutan antes de todas las demás variables.

  • Puede deshabilitar extensiones de comandos para un proceso determinado mediante /e:off. Puede habilitar o deshabilitar extensiones para todas las cmd opciones de línea de comandos en un equipo o sesión de usuario estableciendo los siguientes valores de REG_DWORD :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Establezca el valor de REG_DWORD en 0×1 (habilitado) o 0×0 (deshabilitado) en el Registro mediante Regedit.exe. La configuración especificada por el usuario tiene prioridad sobre la configuración del equipo y las opciones de línea de comandos tienen prioridad sobre la configuración del Registro.

    Precaución

    la modificación incorrecta del Registro puede dañar gravemente el sistema. Antes de realizar cambios en el Registro, debe hacer una copia de seguridad de los datos de valor guardados en el equipo.

  • Al habilitar extensiones de comandos, se ven afectados los siguientes comandos:

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (también incluye cambios en los procesos de comandos externos)
  • Si habilita la expansión de variables de entorno retrasadas, puede usar el carácter de signo de exclamación (!) para sustituir el valor de una variable de entorno en tiempo de ejecución.

  • La finalización del nombre de archivo y directorio no está habilitada de forma predeterminada. Puede habilitar o deshabilitar la finalización del nombre de archivo para un proceso determinado del cmd comando con /f:{on | off}.

  • Puede habilitar o deshabilitar la finalización de nombres de archivo y directorio para todos los procesos del cmd comando en un equipo o para una sesión de inicio de sesión de usuario estableciendo los siguientes valores de REG_DWORD :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    Para establecer el valor de REG_DWORD , ejecute Regedit.exe y use el valor hexadecimal de un carácter de control para una función determinada (por ejemplo, 0×9 es TAB y 0×08 es BACKSPACE). Use el valor [0×20] para el espacio en blanco, ya que no es un carácter de control válido. La configuración especificada por el usuario tiene prioridad sobre la configuración del equipo y las opciones de línea de comandos tienen prioridad sobre la configuración del Registro.

    Precaución

    la modificación incorrecta del Registro puede dañar gravemente el sistema. Antes de realizar cambios en el Registro, debe hacer una copia de seguridad de los datos de valor guardados en el equipo.

  • Si habilita la finalización de nombres de archivo y directorio mediante /f:on, use CTRL+D para la finalización del nombre de directorio y CTRL+F para la finalización del nombre de archivo. La única diferencia entre las combinaciones de teclas CTRL+D y CTRL+F es que CTRL+D solo coincide con los nombres de directorio y CTRL+F coincide con los nombres de archivo y directorio. Si usa la finalización del nombre de archivo y directorio en los comandos cdde directorio integrados , mdo rd, se asume la finalización del directorio.

  • Al presionar CTRL+D o CTRL+F , se procesa la finalización del nombre de archivo y directorio. Estas funciones de combinación de teclas anexan un carácter comodín a <string> si no está presente, crean una lista de rutas de acceso que coinciden y después muestran la primera ruta de acceso coincidente. Si ninguna de las rutas de acceso coincide, la función de finalización de nombres de archivo y directorio aparece y no cambia la presentación.

    • Para desplazarse por la lista de rutas de acceso coincidentes, presione CTRL+D o CTRL+F repetidamente.
    • Para desplazarse por la lista hacia atrás, presione la tecla MAYÚS y CTRL+D o CTRL+F simultáneamente.
    • Para descartar la lista guardada de rutas de acceso coincidentes y generar una nueva lista, edite <string> y presione CTRL+D o CTRL+F.
    • Si cambia entre CTRL+D y CTRL+F, se descarta la lista guardada de rutas de acceso coincidentes y se genera una nueva lista.
  • La finalización de nombres de archivo y directorio procesa correctamente los nombres de archivo que contienen espacios en blanco o caracteres especiales si coloca comillas alrededor de la ruta de acceso coincidente.

  • Si procesa la finalización del nombre de archivo y directorio desde , <string>en el punto en <string> el que se procesó la finalización, se descarta cualquier parte de la ruta de acceso a la derecha del cursor.

Uso de variables de entorno

El cmd entorno del shell de comandos se define mediante variables que determinan el comportamiento del shell de comandos y del sistema operativo. Puede definir el comportamiento del entorno del shell de comandos o todo el entorno del sistema operativo mediante dos tipos de variables de entorno, sistema y local. Las variables de entorno del sistema definen el comportamiento del entorno del sistema operativo global. Las variables de entorno local definen el comportamiento del entorno de la instancia actual de cmd.

Solo los usuarios con privilegios administrativos pueden cambiar las variables del sistema. Estas variables se usan con más frecuencia en scripts de inicio de sesión. Las variables de entorno local solo están disponibles cuando el usuario para el que se creó se inicia sesión en el equipo. Las variables locales establecidas en el subárbol de HKEY_CURRENT_USER solo son válidas para el usuario actual, pero definen el comportamiento del entorno del sistema operativo global.

En la lista siguiente se describen los distintos tipos de variables en orden descendente de precedencia:

  1. Variables del sistema integradas.
  2. Variables del sistema que se encuentran en el subárbol de HKEY_LOCAL_MACHINE .
  3. Variables locales que se encuentran en el subárbol de HKEY_CURRENT_USER .
  4. Todas las variables de entorno y las rutas de acceso establecidas en el archivo Autoexec.bat.
  5. Todas las variables de entorno y las rutas de acceso establecidas en un script de inicio de sesión (si están presentes).
  6. Variables usadas de forma interactiva en un script o un archivo por lotes.

En el shell de comandos, cada instancia de cmd hereda el entorno de su aplicación primaria. Por lo tanto, puede cambiar las variables en el nuevo cmd entorno sin afectar al entorno de la aplicación primaria.

Puede ver las variables de entorno en su entorno mediante la ejecución de uno de los siguientes comandos:

set
Get-ChildItem Env:

Establecimiento de variables de entorno

Para ver una variable, escriba:

set <VariableName>

Para agregar una variable, escriba:

set <VariableName>=<value>

Para eliminar una variable, escriba:

set <VariableName>=

Puede usar la mayoría de los caracteres como valores de variable, incluido el espacio en blanco. Si usa los caracteres especiales , , <|, &o ^, debe precederlos >con el carácter ^ de escape o comillas dobles. Si usa comillas dobles, se incluyen como parte del valor porque todo lo que sigue al signo igual se toma como valor. Tenga en cuenta los ejemplos siguientes:

Para crear el valor New&Namede variable , escriba:

set <VariableName>=New^&Name

Para crear el valor "New&Name"de variable , escriba:

set <VariableName>="New&Name"

Si escribe set <VariableName>=New&Name (sin comillas dobles o de carat ^ ) en el símbolo del sistema, puede aparecer el siguiente mensaje de error:

"'Name' is not recognized as an internal or external command, operable program or batch file."

Los nombres de variables no distinguen mayúsculas de minúsculas. Sin embargo, set muestra la variable exactamente al escribirla. Puede combinar letras mayúsculas y minúsculas en los nombres de variable para que el código sea más legible, por ejemplo, UserName.

Nota:

  • El tamaño máximo de variable de entorno individual es de 8192 bytes.
  • El tamaño total máximo de todas las variables de entorno, incluidos los nombres, los valores y los signos iguales, es de 65 536 caracteres para un proceso.

Sustitución de valores de variables de entorno

Para sustituir valores de variable en la línea de comandos o scripts, incluya el nombre de la variable en signos de porcentaje (%VariableName%). Esto permite cmd hacer referencia al valor de la variable en lugar de tratarla como texto literal. Cuando se ejecuta un script, cmd reemplaza las instancias de la variable por su valor. Por ejemplo, el uso de %USERNAME% en un script sustituye automáticamente en el nombre de usuario real. La sustitución de variables no es recursiva; cmd comprueba las variables solo una vez.