Menú
Es gratis
registro
casa  /  Programas/ Comando SETLOCAL: cambie las variables de entorno para el archivo por lotes actual. Ayuda de variables de entorno de Windows

El comando SETLOCAL cambia las variables de entorno para el archivo por lotes actual. Ayuda de variables de entorno de Windows

div.main (margen izquierdo: 20 puntos; margen derecho: 20 puntos)
Comandos de la consola de Windows NT

Inicialmente, muchos usuarios de NT no aprovechan las posibilidades que brindan los comandos de la consola, o no las utilizan en su totalidad.

En este artículo me gustaría describir los puntos principales de trabajar con la consola. ¿Para qué sirve, preguntas? Conocer los comandos básicos le permite automatizar el trabajo usándolos en archivos por lotes, pero cuando se trabaja con una red, muchos de ellos son indispensables. Todo lo anterior se relacionará principalmente con Windows XP, pero bien puede ser aplicable a otras versiones de NT (4, 2000), aunque con algunas limitaciones.
NT se basa en principios ligeramente diferentes a los de Win9x. Sin embargo, MS-DOS también está presente, sin embargo, solo como máquina virtual(Máquina virtual DOS de NT, NTVDM). De hecho, este es un modo de línea de comando, con la ayuda de la cual se ingresan y ejecutan las utilidades y los archivos por lotes.
El acceso a los línea de comando se puede acceder a través de Inicio/Programas/Accesorios/Símbolo del sistema.
El principal intérprete de línea de comandos en NT es cmd.exe, el principal se debe a que también hay un intérprete de comandos estándar de MS-DOS: command.com.
Al ejecutar cmd.exe (a través del menú o Inicio / Ejecutar / cmd.exe), obtenemos una ventana en la que puede trabajar con la línea de comando. Además, al estar ya en la ventana de comandos abierta, puede ejecutar varias versiones más de cmd. Puede utilizar el comando EXIT para salir de la versión actual.
Hay dos modos de funcionamiento de cmd.exe: avanzado y estándar. El modo avanzado funciona con los siguientes comandos:
DEL o BORRAR; COLOR; CD o CHDIR; MD o MKDIR; INMEDIATO; PUSHHD; POPD; COLOCAR; ESTABLECER LOCAL; ENDLOCAL; SI; POR; LLAMADA; CAMBIO; IR; INICIO (cambiado también llamada comandos externos); ASOC; TIPOF.

Comando CMD
Sintaxis general del comando:
cmd [comando]
/C(/K) - Ejecuta el comando especificado con/sin terminación posterior.
Ejecuta el comando especificado sin completarlo posteriormente.
/S: cambia el comportamiento después de /C o /K (ver más abajo).
/Q - Desactiva el modo de salida de comandos en la pantalla (ECHO).
/D: deshabilite la ejecución de comandos AutoRun desde el registro (consulte a continuación).
/A (/U) - El comando de salida da como resultado el formato ANSI/UNICODE.
/T:color: seleccione el color del texto/fondo (para obtener más detalles, consulte la descripción de COLOR a continuación).
/E:ON(/E:OFF) - Activar/desactivar extensiones de comando (ver más abajo).
/F:ON(/F:OFF) - Habilita/deshabilita los caracteres de finalización para nombres de archivos y carpetas (ver más abajo).
/V:ON(/V:OFF) - Habilita/deshabilita la expansión retrasada de las variables de entorno usando el "!" como separador. Por ejemplo, /V:ON le permite usar!var! como una expansión variable var en tiempo de ejecución. La sintaxis var se usa para expandir las variables en la entrada, lo que conduce a resultados muy diferentes internamente. En bucle.
parámetro COLOR. Los atributos de color se especifican como DOS dígitos hexadecimales: el primero especifica el color de fondo y el segundo especifica el color del texto. Cada dígito puede tener los siguientes valores: 0=negro, 1=azul, 2=verde, 3=azul, 4=rojo, 5=morado, 6=amarillo, 7=blanco, 8=gris, 9=azul claro, A =verde claro, B=azul claro, C=rojo claro, D=púrpura claro, E=amarillo claro, F=blanco brillante.
Si no se especifica ningún argumento, el comando restaura la selección de color original como estaba cuando se inició CMD.EXE. Este valor se recupera del cuadro de texto actual, del valor del modificador /T o del valor de la entrada de registro DefaultColor.
El comando COLOR devuelve un valor de código de error de ERRORLEVEL 1 cuando intenta llamar a este comando con valores de color de texto y color de fondo coincidentes.
Ejemplo: "COLOR fc" especifica texto rojo claro sobre un fondo blanco brillante.
Para especificar varios comandos en la misma línea, sepárelos con los caracteres "&&" y escríbalos entre comillas. Además, por motivos de compatibilidad, /X es lo mismo que /E:ON, /Y es lo mismo que /E:OFF y /R es lo mismo que /C. Todas las demás opciones de la línea de comandos se ignoran.
Si se especifican los modificadores /C o /K, el resto de la línea de comando después de dicho modificador se procesa como una línea de comando y los caracteres de comillas (") se procesan de acuerdo con las siguientes reglas:
1. Si se cumplen todas las condiciones siguientes, se conservan los caracteres de comillas en la línea de comando:
- falta la tecla /S;
- hay exactamente dos caracteres de comillas;
- no hay otros entre ellos caracteres especiales, Me gusta esto: &<>()@^|;
- hay uno o más espacios entre ellos;
- la cadena entre comillas es el nombre del archivo ejecutable.
2. De lo contrario, se verifica el primer carácter y, si es un carácter de comillas, se elimina, el último carácter de comillas en la línea de comando también se elimina y todo el texto después de este último carácter de comillas se conserva.
Si el modificador /D no se especifica en la línea de comando, cuando se inicia CMD.EXE, se verifican los valores de las variables REG_SZ o REG_EXPAND_SZ para las siguientes claves de registro:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorAutoRun
y/o
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun
y si alguno de ellos o ambos están presentes, entonces se ejecutan primero.
De forma predeterminada, el procesamiento de comandos avanzado está habilitado. Para deshabilitar el procesamiento extendido para una llamada en particular, use el interruptor /E:OFF.
Puede habilitar o deshabilitar el procesamiento de comandos extendido para todas las llamadas a CMD.EXE en este computador o para un usuario dado, usando REGEDT32.EXE configurando los valores REG_DWORD en registro del sistema por secciones:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions
y/o
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions,
igual a 0x1 o 0x0. La configuración del usuario anula la configuración de la computadora.
Los modificadores de la línea de comandos, a su vez, anulan la configuración del registro.
La expansión de la variable de entorno retrasada no está habilitada de forma predeterminada. Se puede habilitar o deshabilitar para una llamada específica a CMD.EXE usando las teclas /V:ON o /V:OFF, o usando REGEDT32.EXE configurando los valores REG_DWORD en el registro del sistema para las claves:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorDelayedExpansion
y/o
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorDelayedExpansion
igual a 0x1 o 0x0. La configuración del usuario, como se mencionó anteriormente, anula la configuración de la computadora y los interruptores de la línea de comandos, a su vez, anulan la configuración del registro.
Si la expansión de la variable de entorno retrasada está habilitada, entonces el "!" ( signo de exclamación) se puede usar para reemplazar el valor actual de una variable de entorno en tiempo de ejecución.
Es posible habilitar/deshabilitar la expansión retrasada de las variables de entorno para todas las llamadas a CMD.EXE en una computadora determinada o para un usuario determinado utilizando REGEDT32.EXE con un valor REG_DWORD en el registro del sistema para las siguientes claves:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorCompletionChar,
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorPathCompletionChar
y/o
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorCompletionChar,
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorPathCompletionChar,
configurando sus valores hexadecimales al código del carácter de control utilizado para la función particular (por ejemplo, 0x4 para Ctrl-D o 0x6 para Ctrl-F). Nuevamente, la configuración del usuario anula la configuración de la computadora; los modificadores de la línea de comandos, a su vez, anulan la configuración del registro.
La finalización de nombres de archivos y carpetas tampoco está habilitada de forma predeterminada. Esto se puede arreglar con los interruptores /F:ON o /F:OFF.
Si la finalización está habilitada con el modificador de línea de comando /F:ON, entonces se usan dos caracteres de control: Ctrl-D para nombres de carpetas y Ctrl-F para nombres de archivos. Para deshabilitar un carácter de terminación específico en el registro del sistema, se utiliza el valor hexadecimal del carácter de espacio (0x20) como código de carácter especial.
Se invoca la finalización cuando se ingresa uno de estos dos caracteres especiales. La función de finalización toma la cadena de ruta a la izquierda del punto de inserción, le agrega un carácter comodín si no hay ninguno y luego crea una lista de rutas que coinciden con la definición dada. Después de eso, se muestra el primer elemento de esta lista de rutas coincidentes. Si la lista está vacía, entonces señal de sonido y no sale nada.
Después de eso, si vuelve a introducir el mismo carácter especial, recorrerá todas las rutas coincidentes. pulsación de tecla cuando ingresa un carácter de control, le permite ver la lista de rutas en orden inverso. Si cambia la ruta de salida y luego vuelve a ingresar el carácter de control, la lista guardada se borra y se crea una nueva lista de rutas. Lo mismo sucede cuando cambia de un carácter de terminación a otro. La única diferencia cuando se usa el carácter final del archivo es que tanto la ruta como el nombre del archivo se toman para crear la lista de coincidencias, mientras que cuando se usa el carácter final de la carpeta, solo se toma la ruta. Si se utiliza un carácter de terminación en uno de los comandos integrados de manipulación de carpetas (CD, MD o RD), siempre se asume el carácter de terminación de carpeta.
El carácter de terminación también funciona correctamente con nombres de archivo que contienen espacios u otros caracteres especiales, siempre que la cadena de coincidencia esté entre comillas. Además, si mueve el punto de inserción hacia la izquierda y luego usa un terminador dentro de una línea, el texto restante a la derecha del punto de inserción se descartará.
Caracteres especiales que requieren comillas obligatorias:
<пробел>&(){}^=;!"+,`~

equipo PROMT
Cambie el símbolo del sistema de la línea de comandos cmd.exe.
PROMPT [texto], donde texto es la nueva línea de comandos. El aviso puede incluir caracteres regulares y los siguientes códigos:
$A - & (y comercial);
$B - | (barra vertical);
$C - ((paréntesis izquierdo);
$D - Fecha actual;
$E - ESC (código de carácter ASCII 27);
$F -) (paréntesis derecho);
$G -> (signo mayor que);
$H - RETROCESO (eliminar el carácter anterior);
$L-< (знак "меньше");
$N - Disco actual;
$P - Unidad y directorio actual;
$Q - = (signo igual);
$S - (espacio);
$T - Hora actual;
$V - Número Versiones de Windows EXP;
$_ - Retorno de carro y avance de línea;
$$ - $ (símbolo de dólar).
Cuando el procesamiento de comandos extendido está habilitado, el comando PROMPT admite los siguientes caracteres de formato adicionales:
$+: muestra la cantidad deseada de signos más (+) según la profundidad actual de la pila de directorios PUSHD, un signo para cada ruta almacenada;
$M - visualización de nombre completo unidad remota, asociado con el nombre de la unidad actual, o una cadena vacía si la unidad actual no es una unidad de red. Por ejemplo, si la unidad E: está conectada al recurso compartido de red \ServerPrograms, entonces con el comando PROMT $M$P$G, el formato del símbolo del sistema será \ServerPrograms E:>.

Ubicación: Windows\sistema32

Descripción: Procesador de comandos de Windows

Windows XP tiene la llamada consola, un programa cmd.exe, que es un intérprete de comandos. Con un inicio simple, sin especificar los parámetros de la línea de comandos, la consola muestra la versión del sistema operativo, información sobre la protección de derechos de autor de los desarrolladores del sistema operativo y la propia línea de comandos, en la que puede ingresar como parámetro de la línea de comandos del propio programa. cmd.exe, así como cualquier comando externo, por ejemplo, un comando para iniciar otra aplicación o comando estándar, como mkdir , del , etc.

Opciones de la línea de comandos

Sintaxis para la línea de comando:

cmd[comando]

Puede usar varios comandos al mismo tiempo, usando un separador especial entre ellos: los caracteres &&, mientras que la combinación completa de varios comandos debe estar entre comillas, por ejemplo, " equipo&&equipo&& equipo".

/? - llamada de ayuda

/A- salida de los resultados del comando especificado en formato ANSI

/C- ejecutando el comando dado y luego cerrando la ventana de la consola

/D- deshabilite la ejecución de los comandos AutoRun (que se ejecutan automáticamente primero cuando se llama a cmd.exe) especificados en secciones especiales registro HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun Y HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

/E:ENCENDIDO (/E:APAGADO)- permiso (prohibición) de extensiones de comando. En Windows XP, el procesamiento extendido de todos los comandos cmd.exe está habilitado de forma predeterminada, esta opción se usa para habilitar/deshabilitar extensiones para un proceso específico. El procesamiento avanzado incluye los siguientes comandos: assoc, call, chdir (cd), color, del (borrar), endlocal, for, ftype, goto, if, mkdir (md), popd, prompt, pushd, set, setlocal, shift, start(cambiado también llamando a comandos externos)

/F:ENCENDIDO (/F:APAGADO)- permiso (prohibición) para completar nombres de archivos y carpetas (deshabilitado de forma predeterminada) de una llamada cmd.exe específica. Suficiente característica útil, que le permite no ingresar completamente manualmente en la ventana de la consola las rutas a los archivos o los nombres de las carpetas en sí, sino ingresar solo una parte de la ruta larga y, presionando una combinación de teclas especial, dar Sistema operativo encuentre las opciones adecuadas y simplemente elija la correcta. (Si necesita habilitar o deshabilitar la finalización de nombre para todas las llamadas de cmd.exe, consulte Conjunto de comandos automáticos).

La configuración del usuario tiene prioridad sobre la configuración de la computadora, y el valor de la opción de shell /F tiene prioridad sobre la configuración del registro. Microsoft proporciona algunas aclaraciones sobre el uso de esta función: "Si la finalización está habilitada con el interruptor de línea de comando /F:ON, entonces se usan dos caracteres de control: Ctrl+D para nombres de carpetas y Ctrl+F para nombres de archivos.

Para deshabilitar un carácter de terminación específico en el registro del sistema, se utiliza el valor hexadecimal del carácter de espacio (0 x 20) como código de carácter especial. Se invoca la finalización cuando se ingresa uno de estos dos caracteres especiales. La función de finalización toma la cadena de ruta a la izquierda del punto de inserción, le agrega un carácter comodín si no hay ninguno y luego crea una lista de rutas que coinciden con la definición dada.

Después de eso, se muestra el primer elemento de esta lista de rutas coincidentes. Si la lista está vacía, suena un pitido y no se muestra nada. Después de eso, si vuelve a introducir el mismo carácter especial, recorrerá todas las rutas coincidentes.

prensado Teclas de mayúsculas cuando ingresa un carácter de control, le permite ver la lista de rutas en orden inverso. Si cambia la ruta de salida y luego vuelve a ingresar el carácter de control, la lista guardada se borra y se crea una nueva lista de rutas. Lo mismo sucede cuando cambia de un carácter de terminación a otro.

La única diferencia cuando se usa el carácter final del archivo es que tanto la ruta como el nombre del archivo se toman para crear la lista de coincidencias, mientras que cuando se usa el carácter final de la carpeta, solo se toma la ruta. Si se utiliza un carácter de terminación en uno de los comandos integrados de manipulación de carpetas (CD, MD o RD), siempre se asume el carácter de terminación de carpeta. El carácter de terminación también funciona correctamente con nombres de archivo que contienen espacios u otros caracteres especiales, siempre que la cadena de coincidencia esté entre comillas.

Además, si mueve el punto de inserción hacia la izquierda y luego usa un terminador dentro de una línea, el texto restante a la derecha del punto de inserción se descartará. Caracteres especiales que requieren comillas obligatorias:<пробел>&()()^=;!"+,~". ¿Todo claro?

/K- ejecución del comando dado sin finalización posterior (la ventana de la consola no se cerrará)

/Q- deshabilitar la salida de comandos en la pantalla (ECHO OFF). /R - igual que /C

/S- cambiar el comportamiento del comando después de /C o /K

/T: color: establezca el color del texto y el fondo de la ventana de la consola. El parámetro de color tiene un valor en forma de dos números hexadecimales: el primero especifica el color de fondo de la ventana y el segundo especifica el texto de la ventana. Es decir, el resultado del comando "CMD / T: 7С" serán letras de color rojo claro sobre un fondo blanco.

/u- salida de resultados de ejecución de comandos en formato Unicode

/V:ENCENDIDO (/V:APAGADO)- habilitar (prohibir) la expansión retrasada de las variables de entorno (para una llamada específica a cmd.exe) usando el signo de exclamación "!" como separador. Por ejemplo, /V:ON le permite usar!var! como una expansión variable var en tiempo de ejecución. La sintaxis var se usa para expandir las variables a medida que se ingresan, lo que conduce a resultados muy diferentes dentro del ciclo FOR. Cuando la expansión de la variable de entorno retrasada está habilitada, el "!" (signo de exclamación) se puede utilizar para reemplazar el valor actual de una variable de entorno en tiempo de ejecución; /X - significa lo mismo que el modificador /E:ON, por razones de compatibilidad; /Y es lo mismo que /E:OFF. Y algunas observaciones más.

Si se especifican los modificadores /C o /K, el resto de la línea de comando después de dicho modificador se trata como una línea de comando y los caracteres de comillas (") se procesan de esta manera. Los caracteres de comillas en la línea de comandos se conservan si todas las condiciones siguientes son verdaderas: falta el modificador /S; hay exactamente dos caracteres de comillas; no hay otros caracteres especiales entre ellos, como: &<>()@^|; hay uno o más espacios entre ellos; la cadena entre comillas es el nombre del archivo ejecutable. De lo contrario, se comprueba el primer carácter y, si es un carácter de comillas, se elimina, también se elimina el último carácter de comillas en la línea de comando y se conserva todo el texto después de ese último carácter de comillas.

Tabla para configurar el color del texto y el fondo de la ventana de la consola:

0 - negro; 1 - azul; 2 - verde; 3 - azul; 4 - rojo; 5 - morado; 6 - amarillo; 7 - blanco; 8 - gris; 9 - azul claro; A - verde claro; B - azul claro; C - rojo claro; D - morado claro; E - amarillo claro; F - blanco brillante.

Por cierto, el color y otras configuraciones se pueden cambiar de otra manera. Haga clic derecho en la barra de título de la ventana y seleccione Propiedades. Se abrirá una ventana con cuatro pestañas, en las que estarán disponibles las opciones para cambiar la configuración del programa. Si no le gusta la pantalla de línea de comando negra estándar, la pestaña Color le ofrece elegir un color para la pantalla y el texto, ya sea de 16 colores estándar para los que hay muestras correspondientes, o especificando un valor de color numérico en RGB formato. La pestaña Diseño ajusta el tamaño de la ventana y el búfer de pantalla. Si en los primeros MS-DOS y tamaño de las ventanas pantalla se mantuvo sin cambios en 25 líneas de alto y 80 caracteres de largo, y para la salida más líneas tuvo que agregar el comando |more, luego en NT y sistemas posteriores, simplemente puede configurar el tamaño del búfer de pantalla a un tamaño lo suficientemente grande y usar la barra de desplazamiento, que es mucho más conveniente.

Texto en la ventana de la línea de comandos Para copiar y pegar texto en la ventana de la línea de comandos, lo habitual combinaciones de ventanas teclas como Ctrl+C, Ctrl+V no funcionarán. Para extraer texto del portapapeles, deberá abrir el menú haciendo clic derecho en la barra de título y seleccionando el submenú Editar. O simplemente haga clic derecho en la ventana. Para copiar texto de la ventana, seleccione el elemento Marcar y seleccione el texto deseado con el mouse. Luego presione Entrar o seleccione Copiar en el mismo menú. Si necesita pegar texto en la ventana de la línea de comandos, consulte el comando Pegar. Utilice las teclas de flecha para volver a ejecutar el comando.<<вверх>> y<<вниз >> para navegar por la lista de comandos ejecutados. La directiva cls se usa para limpiar la pantalla de texto.

TÍTULO- para cambiar el encabezado de la fila

TÍTULO[cadena] , donde cadena es el título futuro de la ventana de la línea de comando (escrito sin comillas). Una vez que se ha establecido el título de la ventana, solo se puede cambiar llamando de nuevo al comando TITLE. El uso de este comando puede ser útil en archivos por lotes.

Entonces, la ejecución del ejemplo a continuación irá acompañada de la aparición de la inscripción correspondiente en el título de la ventana:

TÍTULO Los archivos se están copiando...

COPIAR \\Servidor\Compartir\*.doc C:\Usuario\Común\*.doc

ECHO Copia completada.

TÍTULO Proceso completado

Mando EN- Con este comando, puede ejecutar comandos y programas en un momento específico.

EN[\\nombre del equipo] [ | /ELIMINAR]

EN[\\nombre del equipo] hora [ /CADA:fecha[,...] | /SIGUIENTE:fecha [,...]] "comando"

\\ nombre de la computadora puntos a computadora remota A en el que se pueden ejecutar las tareas programadas. Si no se especifica este parámetro, se asume que el valor predeterminado es la computadora en la que se ejecuta el comando AT;

identificación el identificador asignado al comando especificado;

/Eliminar cancela el comando previsto. Si se omite id, se cancelan todos los comandos asignados en la computadora;

/sí esta opción, cuando se usa con la opción anterior (/delete), activa automáticamente la confirmación de todas las solicitudes;

hora tiempo de ejecución del comando (en formato de 24 horas horas:minutos);

/interactivo permite intercambiar el comando AT con este momento en el sistema por los usuarios;

/cada:fecha[,...] ejecuta el comando en cada día especificado de la semana o el mes. Si se omite la fecha, se asume el día actual del mes;

/proxima fecha[...] ejecuta el comando especificado la próxima vez que ocurra la fecha especificada (por ejemplo, el próximo jueves). Si no se especifica ninguna fecha, el valor predeterminado es el día actual del mes;

"mando" especifica un comando de Windows NT o programa por lotes para ser ejecutado El nombre del archivo debe estar completamente calificado. Al mismo tiempo, si se ejecuta alguno de los comandos internos, por ejemplo, COPY o DIR, y no Archivo ejecutable, entonces debe iniciar el intérprete de comandos con el interruptor / C, por ejemplo:

A LAS 10:00 "CMD /C DIR > C:\test.out.

Mando Para- Sus capacidades son amplias, pero nos limitaremos a demostrar solo una de ellas - Copia a través de la red a todas las máquinas a la vez. Digamos que quiere copiar un archivo a veinte máquinas. Esto se hace muy rápidamente. Primero, escribimos una lista de todas las máquinas en la red en el archivo list.txt. En la consola escribimos:

vista de red > c:\list.txt

Luego, para realizar, por ejemplo, copiar el archivo patch.exe a cada máquina de la lista, emitimos el comando:

FOR /F "tokens=1" %i en (c:\list.txt) copie d:\temp\patch.exe "%i\C$\program files\ICQ"

La variable %i tomará automáticamente el valor del nombre NetBIOS de la máquina de nueva línea El archivo list.txt y la copia se realizarán en esta máquina.

Cambiar la apariencia de la línea de comandos

cmstp.exe

Ubicación: WINDOWS\sistema32

Descripción: Instalador de perfiles de Microsoft Connection Manager

Instale o elimine un perfil de servicio de Connection Manager. Comando ejecutado sin parámetros cmstp instala un perfil de servicio con la configuración predeterminada adecuada para el sistema operativo y los permisos de usuario.

comp.exe

Ubicación: WINDOWS\sistema32

Descripción: Utilidad de comparación de archivos

Comparación byte a byte de dos o más archivos. Mando borrador le permite comparar archivos ubicados en discos diferentes y en diferentes directorios. Al comparar archivos usando el comando borrador se muestran sus nombres y ubicaciones. Comando ejecutado sin parámetros borrador solicita archivos para comparar.

La descripción del programa está en Ayuda de Windows

Sintaxis:

borrador[archivo1] [archivo2] [ /D] [/a] [/l] [/n= número de líneas ] [ /C]

Para comparar el contenido del directorio C:\Reports con el contenido del directorio copias de seguridad\\Sales\Backup\April , ingrese el siguiente comando:

comp c:\informes\\ventas\copia de seguridad\abril

Para comparar las primeras diez líneas de archivos en el directorio \Factura e imprimir el resultado en formato decimal, escriba el siguiente comando:

comp \factura\*.txt \factura\backup\*.txt /n=10 /d

compacto.exe

Ubicación: WINDOWS\sistema32

Descripción: Utilidad de compresión de archivos - Utilidad de compresión de archivos

Muestre información o cambie la compactación de archivos y directorios en particiones NTFS. Comando lanzado sin parámetros compacto muestra información sobre la compactación de archivos en el directorio actual.

La descripción del programa se encuentra en la Ayuda de Windows.

Sintaxis:

compacto[(/c|/u)] ] [nombre de archivo[...]]

control.exe

Ubicación: Windows\sistema32

Descripción: Tablero Controles de Windows - control de ventanas panel

Este comando se utiliza para iniciar los subprogramas del Panel de control

Consejos: cómo automatizar el inicio de sesión

Registro: Prohibición de iniciar el Panel de Control y sus applets

convertir.exe

Ubicación: Windows\sistema32

Descripción: Utilidad de conversión del sistema de archivos

La utilidad de línea de comandos se utiliza para convertir volúmenes con sistema de archivos Volúmenes FAT y FAT32 a NTFS.

Sintaxis:

convertir[volumen] /fs:ntfs

script.exe

Ubicación: Windows\sistema32

Descripción: host de secuencias de comandos basado en la consola de Microsoft (r)

Servidor de secuencias de comandos script.exe es una opción de consola diseñada para interactuar con el usuario a través de la línea de comandos (a diferencia de la aplicación GUI wscript.exe).

Sintaxis:

texto[nombre_script] [opciones_servidor] [argumentos_script]

Consulte la Ayuda de Windows para obtener una descripción de las opciones.

cacls.exe

Ubicación: Windows\sistema32

Descripción: Modificar tablas de control de acceso - Programa de control de ACL

El programa se utiliza para ver o modificar archivos de tabla de control de acceso selectivo (DACL).

La descripción del programa se encuentra en la Ayuda de Windows.

    Comando ESTABLECER LOCAL se utiliza para cambiar temporalmente los valores de las variables de entorno en el comando archivos de Windows. Los cambios de entorno realizados después de ejecutar el comando SETLOCAL son locales para el archivo por lotes actual. Para restaurar sus valores anteriores, debe emitir el comando ENDLOCAL. Cuando se llega al final de un archivo por lotes, se ejecuta automáticamente un comando ENDLOCAL para todos los comandos SETLOCAL válidos ejecutados en ese archivo por lotes, y los valores de todos Variables de entorno se restauran al estado anterior a la ejecución del comando SETLOCAL.

Formato de línea de comando:

CONFIGURAR LOCAL | ENABLEDELAYEDEXPANSION | EXPANSIÓN RETARDADA DESHABILITADA

Cambiar el comando SETLOCAL al habilitar el procesamiento de comandos extendido:

El comando SETLOCAL toma argumentos opcionales: ENABLEEXTENSIONS o DISABLEEXTENSIONS. Esto le permite habilitar o deshabilitar el procesamiento de comandos avanzado antes de que se ejecute el comando. Ver CMD /? para una explicación detallada. ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION Habilita o deshabilita la expansión variable de entorno retrasada. Ver ESTABLECER /? para una explicación detallada. Estos cambios permanecen vigentes hasta que el comando ENDLOCAL coincide, independientemente del estado inicial anterior al comando SETLOCAL.

Si se llama al comando SETLOCAL con un argumento, establece el código de error ERRORLEVEL. Si se proporciona uno de los dos argumentos válidos, el código de error será cero; de lo contrario, devolverá 1. Esta propiedad se puede usar en archivos por lotes para determinar si el procesamiento de comandos avanzado está disponible, por ejemplo:

VERIFICAR OTROS 2>nul
CONFIGURAR LOCAL HABILITAR EXTENSIONES
IF ERRORLEVEL 1 echo No se puede habilitar el procesamiento avanzado

Este grupo de comandos funciona porque Versión anterior El comando CMD.EXE SETLOCAL no establece el valor de ERRORLEVEL. Se requiere un comando VERIFY con un argumento no válido para establecer un valor de ERRORLEVEL distinto de cero.

Cuando se utilizan variables de entorno en archivos por lotes, existe una cierta limitación asociada con el hecho de que el valor asignado permanece inalterado cuando se modifica dentro de un grupo de comandos especificados entre paréntesis, por ejemplo en comandos SI o POR. Para eludir esta limitación, inicie el procesador de comandos con el parámetro /V:ON y en lugar de signos de porcentaje, para obtener la aceptación variable de valor Se utilizan signos de exclamación. Además, es posible utilizar lanzamiento estándar procesador de comandos, pero con la inclusión local de este modo mediante el comando:

La diferencia en los resultados del uso de valores variables se demuestra claramente en el siguiente archivo por lotes:


@ECO DESACTIVADO
establecer VAR=antes
if "%VAR%" == "antes" (
establecer VAR=después
si "!VAR!" == "después" @echo Signo de porcentaje=%VAR% , Signo de pregunta=!VAR!

Mando establecer VAR=después se ejecuta dentro de una subrutina delimitada por paréntesis y, si se elimina el comando Setlocal EnableDelayedExpansion o no usar para obtener el valor de una variable VAR signos de exclamación, su valor seguirá siendo el anterior (el que estaba configurado antes de ingresar a la subrutina). El mismo problema ocurre cuando el valor de la variable cambia dentro del ciclo de comando. POR. Por ejemplo, para obtener una lista de archivos en el directorio actual, dicho archivo por lotes no funcionará:

establecer LISTA =
para %%i en (*) establezca LIST=%LIST% %%i
eco %LISTA%

Valor variable LISTA dentro del bucle no se cambiará. Para que esto suceda, el archivo por lotes debe modificarse de la siguiente manera:

Setlocal EnableDelayedExpansion
establecer LISTA =
para %%i en (*) establezca LIST=!LIST! %%I
eco %LISTA%
Ahora el valor de la variable LISTA dentro del bucle POR se cambiará tomando secuencialmente los valores de los nombres de archivo separados por espacios ( establecer LISTA=!LISTA! %%I)

Muestre, establezca y elimine las variables de entorno cmd.exe.

SET [variable=[cadena]]

variable El nombre de la variable de entorno.

cadena Una cadena de caracteres para asignar a la variable especificada.

Escriba SET sin opciones para mostrar las variables de entorno actuales.

Cambiar el comando SET al habilitar el procesamiento de comandos extendido:

Si, al llamar, especifica solo el nombre de la variable sin un signo igual y un valor,

el comando SET imprimirá los valores de todas las variables cuyo nombre comience con

de la línea dada. Por ejemplo:

Este comando imprimirá los valores de todas las variables cuyos nombres comiencen con "P".

Si el nombre de la variable no se encuentra en el entorno actual, cuando el comando SET regresa

establecerá el valor de error en ERRORLEVEL 1.

El comando SET no permite el uso de un signo igual en el nombre

Variable ambiental.

El comando SET admite dos modificadores adicionales:

SET /A expresión

SET /P variable=

El modificador /A especifica que la cadena a la derecha del signo igual es numérica

expresión cuyo valor se está evaluando. El controlador de expresiones es muy

es simple y admite las siguientes operaciones enumeradas en orden descendente

prioridad:

() - agrupación

! ~ - - operadores unarios

* / % - operadores aritméticos

Operadores aritméticos

<< >> - desplazamiento binario

& - Y binario

^ - XOR binario

| - O binario

= *= /= %= += -= - asignación

&= ^= |= <<= >>=

Separador de declaraciones

Al utilizar cualquier operador lógico o binario, debe

encierre la cadena de expresión entre comillas. Cualquier cadena no numérica en la expresión

tratados como nombres de variables de entorno cuyos valores se convierten

en forma numérica antes de su uso. Si una variable con nombre de pila

no definido en el sistema, se sustituye por un valor nulo. Esta

le permite realizar operaciones aritméticas sobre los valores de las variables de entorno,

y no necesita ingresar los signos % para obtener los valores. si el equipo

SET /A se llama desde la línea de comando, no desde un archivo por lotes, genera

el valor final de la expresión. A la izquierda de cualquier operador de asignación

debe ser el nombre de la variable de entorno. Los valores numéricos se tratan como

decimales a menos que estén precedidos por un prefijo 0x para números hexadecimales,

y 0 para números octales. Por ejemplo, los números 0x12,

y 022 representan el número decimal 18. Preste atención a la entrada

número octal: 08 y 09 no son números válidos porque en

El sistema octal no usa los números 8 y 9.

El modificador /P le permite establecer el valor de una variable para la cadena de entrada ingresada

usuario. Muestra el promptString especificado antes de leer

la cadena ingresada. El indicador de promptString puede estar vacío.

La sustitución de variables de entorno se puede expandir así:

%RUTA:str1=str2%

expandirá el alcance de la variable de entorno PATH, reemplazando cada aparición de "str1" en

resultado extendido a "str2". "str2" puede ser una cadena vacía para

eliminando efectivamente las ocurrencias de "str1" de la salida expandida. "str1" puede

comenzará con un asterisco, en cuyo caso coincidirá con cualquier

comienzo de la salida expandida hasta la primera aparición del resto de "str1".

También puede utilizar cadenas de extensión.

expandirá el alcance de la variable de entorno PATH, luego usará solo 5

caracteres que comienzan con el carácter 11 (saltando 10) de la extendida

resultado. Si no se especifica la longitud, el valor predeterminado es el restante

valor variable. Si ambos valores (longitud y número de caracteres a saltar)

son negativos, el siguiente valor utilizado será la longitud del valor de la variable

entorno agregado al valor de brecha especificado o la longitud especificada.

extraerá los últimos 10 caracteres de la variable PATH.

extraerá todos los caracteres de la variable PATH, excepto los últimos 2.

Finalmente, se ha agregado soporte para el enlace de tiempo de ejecución para variables de entorno.

ambiente. Este soporte está deshabilitado por defecto. El modificador de línea de comando /V

CMD.EXE le permite activarlo y desactivarlo. Para obtener ayuda, escriba CMD /?

El enlace de tiempo de ejecución para las variables de entorno es útil al atravesar

Restricciones de vinculación temprana que ocurren cuando el texto se lee por primera vez.

línea, no cuando se ejecuta. El siguiente ejemplo demuestra el surgimiento

problema al usar el enlace de variable temprana:

establecer VAR=antes

Si "%VAR%" == "antes" (

if "%VAR%" == "después" @echo Cuerpo del operador de comparación interna

Este mensaje no se mostrará porque %VAR% en AMBAS sentencias IF

se sustituye en el momento del primer uso en la primera FI, incluso en el cuerpo

la primera rama IF que es una expresión compuesta. En SI dentro

expresión compuesta en realidad compara los valores "antes" y

"después", que obviamente es falso. El siguiente ejemplo muestra un error similar:

establecer LISTA =

Para %i en (*) establezca LIST=%LIST% %i

en este caso, la lista de archivos en la carpeta actual nunca se construirá. En lugar de

esto, el valor de la variable LIST será el nombre del último archivo encontrado.

Y nuevamente, esto sucedió porque %LIST% se sustituye solo una vez:

en el momento de procesar la expresión FOR, cuando la lista aún está vacía.

De hecho, el fragmento anterior es equivalente al siguiente ejemplo:

para %i en (*) establezca LIST= %i

en el que el nombre del último archivo encontrado se almacena en la variable LIST.

El enlace de tiempo de ejecución para las variables de entorno se produce cuando

utilizando un carácter especial (signo de exclamación) para indicar

realizar coincidencias en tiempo de ejecución. Si el soporte de vinculación está habilitado

tiempo de ejecución, entonces para lograr los resultados esperados, lo anterior

los fragmentos deben cambiarse así:

establecer VAR=antes

Si "%VAR%" == "antes" (

Establecer VAR=después

Si "!VAR!" == "después de" @echo Cuerpo del operador de comparación interna

Establecer LISTA =

Para %i en (*) establezca LIST=!LIST!%I

Varias variables están disponibles cuando el procesamiento de comandos avanzado está habilitado

entornos que no aparecen en la lista que se muestra cuando se invoca el comando SET.

Los valores de estas variables se calculan dinámicamente cada vez que se recuperan.

Si el usuario establece explícitamente variables con uno de estos nombres,

entonces esta definición anula la definición dinámica correspondiente,

descrito abajo:

%CD%: se expande a la cadena del directorio actual.

%DATE%: se expande a la fecha actual usando el mismo formato de comando DATE.

%TIME% Se expande a la fecha actual usando el formato de comando TIME.

%RANDOM%: se expande a un número decimal aleatorio entre 0 y 32767.

%ERRORLEVEL%: se expande al valor actual de ERRORLEVEL

%CMDEXTVERSION%: se expande al valor de la versión actual

Procesamiento avanzado de comandos.

%CMDCMDLINE%: se expande a la línea de comando original que llamó

procesador de comandos

En Windows XP, el intérprete de comandos cmd.exe, cuando simplemente se inicia, sin especificar los parámetros de la línea de comandos, muestra la versión del sistema operativo, información sobre la protección de derechos de autor de los desarrolladores del sistema operativo y, de hecho, la propia línea de comandos, en la que puede ingresar como parámetro de línea de comando del propio programa cmd.exe, así como cualquier comando externo, por ejemplo, un comando para lanzar otra aplicación o un comando estándar como mkdir, del, etc. parámetros de línea, naturalmente obtienes algunos características adicionales. La sintaxis en este caso es:

cmd [comando]

Aquí el comando, de hecho, especifica el programa o comando ejecutable. Puede usar varios comandos al mismo tiempo, usando un separador especial entre ellos: los caracteres &&, mientras que la combinación completa de varios comandos debe estar entre comillas, por ejemplo, "comando&&comando&&comando".

Ahora, casi de acuerdo con la documentación oficial de Microsoft (me tomé la libertad de editarla, haciéndola un poco más comprensible para la gente, si cabe en este caso), intentaré descifrar el significado de cada parámetro:

/?

Llamada de ayuda (muy detallada, sobre la base de la cual, de hecho, se escribió este artículo).

/A

Muestra los resultados del comando especificado en formato ANSI.

/C

Ejecución del comando especificado, seguido de finalización (es decir, se cerrará la ventana de la consola).

/D

Deshabilitar la ejecución de comandos AutoRun (que se ejecutan automáticamente primero al llamar a cmd.exe) especificados en claves de registro especiales (esta sección establece parámetros, como REG_SZ) y (esta sección establece parámetros, como REG_EXPAND_SZ).

/E:ENCENDIDO (/E:APAGADO)

Permitir (prohibir) extensiones de comando. En Windows XP, el procesamiento extendido de todos los comandos cmd.exe está habilitado de forma predeterminada, esta opción se usa para habilitar/deshabilitar extensiones para un proceso específico.

Deshabilite o habilite completamente el procesamiento avanzado en esta computadora o para usuario específico es posible en el registro, en las secciones correspondientes al contexto deseado y .

"EnableExtensions"=dword:00000001 en estas claves habilita las extensiones y "EnableExtensions"=dword:00000000 las deshabilita, la configuración del usuario tiene prioridad sobre la configuración de la máquina, la configuración de shell /E tiene prioridad sobre la configuración del registro.

En el procesamiento de comandos avanzado, los cambios y/o adiciones afectan a 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 se ha cambiado la llamada de comandos externos); /F:ON (/F:OFF): permite (prohibe) completar nombres de archivos y carpetas (deshabilitado de manera predeterminada) para una llamada cmd.exe específica. Una función bastante conveniente que le permite no ingresar manualmente las rutas a los archivos o los nombres de las carpetas en la ventana de la consola, sino ingresar solo una parte de la ruta larga y, al presionar una combinación de teclas especial, dejar que el sistema operativo encuentre las opciones apropiadas y simplemente seleccione la que necesita.

Si necesita habilitar o deshabilitar la finalización de nombre para todas las llamadas a cmd.exe, entonces en las claves de registro (para la máquina local), (para usuario actual) Instalar en pc siguientes parámetros(se dan valores por defecto):

"CompletionChar"=dword:00000040
"PathCompletionChar"=dword:00000040

para que sus valores hexadecimales correspondan al código del carácter de control utilizado para la función específica (por ejemplo, 0 x 4 para Ctrl+D o 0 x 6 para Ctrl+F). Esto le permite hacer una utilidad conocida, repetidamente mencionada y descrita en nuestra revista, TweakUI.

La configuración del usuario tiene prioridad sobre la configuración de la computadora, y el valor de la opción de shell /F tiene prioridad sobre la configuración del registro.

Microsoft proporciona algunas aclaraciones sobre el uso de esta función: "Si la finalización está habilitada con el interruptor de línea de comando /F:ON, entonces se usan dos caracteres de control: Ctrl+D para nombres de carpetas y Ctrl+F para nombres de archivos. Para deshabilitar un carácter de finalización particular en el registro del sistema, el valor hexadecimal del carácter de espacio (0 x 20) se utiliza como código de carácter especial. Se invoca la finalización cuando se ingresa uno de estos dos caracteres especiales.

La función de finalización toma la cadena de ruta a la izquierda del punto de inserción, le agrega un carácter comodín si no hay ninguno y luego crea una lista de rutas que coinciden con la definición dada. Después de eso, se muestra el primer elemento de esta lista de rutas coincidentes. Si la lista está vacía, suena un pitido y no se muestra nada. Después de eso, si vuelve a introducir el mismo carácter especial, recorrerá todas las rutas coincidentes.

Si presiona la tecla Mayús mientras escribe un carácter de control, podrá desplazarse por la lista de rutas en orden inverso. Si cambia la ruta de salida y luego vuelve a ingresar el carácter de control, la lista guardada se borra y se crea una nueva lista de rutas. Lo mismo sucede cuando cambia de un carácter de terminación a otro. La única diferencia cuando se usa el carácter final del archivo es que tanto la ruta como el nombre del archivo se toman para crear la lista de coincidencias, mientras que cuando se usa el carácter final de la carpeta, solo se toma la ruta.

Si se utiliza un carácter de terminación en uno de los comandos integrados de manipulación de carpetas (CD, MD o RD), siempre se asume el carácter de terminación de carpeta.

El carácter de terminación también funciona correctamente con nombres de archivo que contienen espacios u otros caracteres especiales, siempre que la cadena de coincidencia esté entre comillas. Además, si mueve el punto de inserción hacia la izquierda y luego usa un terminador dentro de una línea, el texto restante a la derecha del punto de inserción se descartará.

Caracteres especiales que requieren comillas obligatorias:

<пробел> & () { } ^ = ; ! ’ + , ` ~ "

¿Todo claro?

/K

Ejecución del comando especificado sin finalización posterior (la ventana de la consola no se cerrará aquí).

/Q

Deshabilitar la salida de comandos a la pantalla (ECHO OFF).

/R

Igual que la opción /C.

/S

Cambie el comportamiento del comando después de /C o /K.

/T:color

Establece el color del texto y el fondo de la ventana de la consola.

El parámetro de color tiene un valor en forma de dos números hexadecimales: el primero especifica el color de fondo de la ventana y el segundo especifica el texto de la ventana. Si el conjunto de colores no ha cambiado en el momento en que se inició cmd.exe (por ejemplo, por otra sesión de shell), se utilizará la configuración de registro predeterminada, que determina apariencia consolas:

"Color predeterminado" = dword: 00000000

Las correspondencias de estos números con los colores se dan en la tabla.

Es decir, el resultado de ejecutar este comando "CMD / T: 7С" serán letras de color rojo claro sobre un fondo blanco.

/u

Salida de resultados de ejecución de comandos en formato Unicode.

/V:ENCENDIDO (/V:APAGADO)

Habilite (desactive) la expansión retrasada de las variables de entorno (para una llamada cmd.exe específica) usando un signo de exclamación "!" como separador. Por ejemplo, /V:ON le permite usar!var! como una expansión variable var en tiempo de ejecución. La sintaxis var se usa para expandir las variables a medida que se ingresan, lo que conduce a resultados muy diferentes dentro del ciclo FOR.

Además, la expansión retrasada de las variables de entorno se puede habilitar o deshabilitar en el registro, en las secciones (para la máquina local), (para el usuario actual) configurando el parámetro "DelayedExpansion"=dword:00000001 para habilitar y "DelayedExpansion"= dword:00000000 para deshabilitar.

La configuración del usuario tiene prioridad sobre la configuración del equipo, y el valor de la opción de shell /V tiene prioridad sobre la configuración del registro.

Cuando la expansión de la variable de entorno retrasada está habilitada, el "!" (el carácter es un signo de exclamación) se puede usar para reemplazar el valor actual de una variable de entorno en tiempo de ejecución.

/X

Significa lo mismo que el interruptor /E:ON, por razones de compatibilidad.

/A

Igual que /E:APAGADO.

Y finalmente, algunos comentarios más valiosos.

Si se especifican las opciones /C o /K, el resto de la línea de comando después de esa opción se trata como una línea de comando y las comillas (") se manejan de la siguiente manera. Los caracteres de comillas en la línea de comando se conservan si todos las siguientes condiciones son verdaderas:

  • falta el modificador /S;
  • hay exactamente dos caracteres de comillas;
  • no hay otros caracteres especiales entre ellos, como: &< > () @ ^ |;
  • hay uno o más espacios entre ellos;
  • la cadena entre comillas es el nombre del archivo ejecutable.

De lo contrario, se comprueba el primer carácter y, si es un carácter de comillas, se elimina, también se elimina el último carácter de comillas en la línea de comando y se conserva todo el texto después de ese último carácter de comillas.