Red de conocimiento informático - Material del sitio web - ¡Cómo usar vb para llamar al programa de instalación del archivo inf!

¡Cómo usar vb para llamar al programa de instalación del archivo inf!

bat es un archivo por lotes en dos

.cmd es otro archivo por lotes para el entorno de línea de comandos del kernel nt

Desde una perspectiva más amplia, mira, scripts de shell de Unix y otros sistemas operativos e incluso el texto en aplicaciones que son interpretados y ejecutados por el shell tienen una función muy similar a los archivos por lotes, y también son interpretados y ejecutados en unidades de comportamiento por un intérprete dedicado. Esta forma de texto Un término más general es. lenguaje de secuencias de comandos. Por lo tanto, hasta cierto punto, los lenguajes de secuencias de comandos como Batch, Unix Shell, Awk, Basic y Perl son todos iguales, pero el alcance de la aplicación y la plataforma de interpretación son diferentes. Incluso algunas aplicaciones todavía usan el nombre de procesamiento por lotes, pero su contenido y extensiones son completamente diferentes del procesamiento por lotes de DOS.

====================================

En primer lugar, el archivo por lotes es un archivo de texto. Cada línea de este archivo es un comando de DOS (la mayoría de las veces es como la línea de comando que ejecutamos en el indicador de DOS. Puede usar Editar en DOS o el Bloc de notas en Windows). (bloc de notas) y otras herramientas de edición de archivos de texto para crear y modificar archivos por lotes.

==== Nota===================

Puedes usar comandos que no sean de DOS en archivos por lotes, incluso Se pueden utilizar archivos de datos ordinarios sin características ejecutables. Esto se debe a la participación de la nueva plataforma de interpretación del sistema Windows, lo que hace que la aplicación del procesamiento por lotes sea cada vez más "marginal". Por lo tanto, el procesamiento por lotes que analizamos debe limitarse al entorno DOS o al entorno de línea de comandos; de lo contrario, será necesario cambiar significativamente muchos conceptos y configuraciones.

========================

En segundo lugar, un archivo por lotes es un programa sencillo. controle el flujo de ejecución del comando a través de declaraciones condicionales (if) y declaraciones de control de proceso (goto). En el procesamiento por lotes, también puede usar declaraciones de bucle (for) para recorrer un comando. Por supuesto, las capacidades de programación de los archivos por lotes son muy limitadas y no estándar en comparación con declaraciones de programación como el lenguaje C. Las declaraciones del programa de procesamiento por lotes son comandos de DOS uno por uno (incluidos los comandos internos y externos), y la capacidad del procesamiento por lotes depende principalmente de los comandos que utilice.

==== Nota ==================

El archivo por lotes también se puede llamar programa de procesamiento por lotes (programa por lotes) , esto es diferente de los lenguajes compilados. En lo que respecta al lenguaje C, un archivo con la extensión c o cpp puede denominarse archivo de lenguaje C o código fuente de lenguaje C, pero solo después de la compilación y la conexión. Solo los archivos exe pueden llamarse C. programas de idiomas. Debido a que el archivo por lotes en sí tiene tanto la legibilidad del texto como la ejecutabilidad de un programa, los límites entre estos términos son relativamente borrosos.

============================

En tercer lugar, cada lote escrito de archivos de procesamiento es equivalente a un comando externo de DOS. Puede colocar el directorio donde se encuentra en su ruta de búsqueda de DOS (ruta) para que pueda ejecutarse en cualquier lugar. Un buen hábito es crear un directorio bat o por lotes en el disco duro (por ejemplo, C:\BATCH) y luego colocar todos los archivos por lotes que escriba en este directorio, siempre que c:\batch sea. establecido en la ruta, puede ejecutar cualquier programa por lotes que escriba en cualquier lugar.

==== Nota =====

Hablando puramente en términos del sistema DOS, los programas ejecutables se pueden subdividir aproximadamente en cinco categorías, según la prioridad de ejecución de alta a low Los arreglos son: comandos macro DOSKEY (pre-residentes en la memoria), comandos internos en COMMAND.COM (residentes en la memoria en cualquier momento según el entorno de la memoria), programas ejecutables con extensión com (cargados directamente en la memoria mediante command.com ), un programa ejecutable con una extensión de bits exe (cargado en la memoria después de ser reubicado por command.com), un programa por lotes con una extensión de bits bat (interpretado y analizado por command.com, y llamado en orden de prioridad según su contenido ), 3, 4, 5 programas ejecutables, analiza una línea, ejecuta una línea, el archivo en sí no se carga en la memoria)

============

Cuarto, en los sistemas DOS y Win9x/Me, el archivo por lotes AUTOEXEC.BAT en el directorio raíz de la unidad C: es un archivo por lotes que se ejecuta automáticamente. Este archivo se ejecutará automáticamente cada vez que se inicie el sistema. inicie el sistema cada vez Coloque los comandos que deben ejecutarse cada vez en este archivo, como configurar la ruta de búsqueda, cargar el controlador del mouse y el caché del disco, configurar las variables de entorno del sistema, etc. El siguiente es un ejemplo de autoexec.bat ejecutándose en Windows 98:

@ECHO OFF

PATH C:\WINDOWS; C:\WINDOWS\COMMAND; :\DOSTools

C:\SYSTOOLS; C:\WINTOOLS; C:\BATCH

LH SMARTDRV.EXE /X

LH DOSKEY.COM / insertar

LH CTMOUSE.EXE

SET TEMP=D:\TEMP

SET TMP=D:\TEMP

== = = Nota =====

AUTOEXEC.BAT es un archivo por lotes que se ejecuta automáticamente para sistemas DOS, que es interpretado y ejecutado por COMMAND.COM cuando se inicia

En el; Entorno Win9x. No solo agrega soporte para DOSSTART.BAT, WINSTART.BAT y muchos otros archivos por lotes que se ejecutan automáticamente, sino que también agrega muchas variantes como .DOS .W40 .BAK .OLD .PWS a AUTOEXEC.BAT para adaptarse a entornos complejos. entornos y necesidades cambiantes.

==== willsort Nota del editor =============

Hay muchas cosas que vale la pena considerar con respecto a la siguiente clasificación de comandos. El @ en los comandos comunes no es un comando, pero dir, copiar y otros comandos de uso común no están incluidos. Sin embargo, todos los comandos en los comandos especiales son comandos comunes para mí. Se recomienda dividir los comandos a los que hace referencia el procesamiento por lotes en tres categorías: comandos internos, comandos externos y programas de terceros. Entre los comandos internos y los comandos externos, existe otro tipo de comando dedicado o de uso común en el procesamiento por lotes, que se puede denominar "comando de procesamiento por lotes".

El siguiente es un extracto del documento de ayuda de MS-DOS 6.22 sobre "comandos de procesamiento por lotes". Por supuesto, algunos de los conceptos y definiciones están algo desactualizados.

Comando por lotes

Un archivo por lotes o programa por lotes es un archivo de texto que contiene varios comandos de MS-DOS, con la extensión .BAT. Cuando escribe el nombre de un programa por lotes en el símbolo del sistema, MS-DOS ejecuta los comandos de este programa por lotes en grupos.

Cualquier comando disponible en el símbolo del sistema se puede utilizar en un programa por lotes. Además, los siguientes comandos de MS-DOS se utilizan específicamente en programas por lotes.

==========

Comandos de uso común

echo, @, call, pausa, rem (consejo: use: en lugar de rem) son los comandos más utilizados para archivos por lotes y comenzaremos a aprender de ellos.

==== Notas ==========

En primer lugar, @ no es un comando, sino un comando de DOS. ¿Solo se usa para proteger el comando? eco de línea Los siguientes son algunos marcadores especiales que pueden verse en la línea de comando de DOS o en el procesamiento por lotes:

Terminador de línea de comando CR(0D)

Escape(1B) Guía de caracteres de escape ANSI.

Espacio(20) Delimitadores de parámetros de uso común

Tab(09); = Delimitadores de parámetros de uso poco común

COPIAR carácter de conexión de archivo de comando

* ? Carácter comodín de archivo

"" Delimitador de cadena

| Carácter de canalización de comando

lt gt;

@ Carácter de máscara de eco de línea de comando

/ Carácter de guía de cambio de parámetro

: Carácter de guía de etiqueta de lote

Guía de variables de lote

En segundo lugar, :: puede desempeñar el papel de comentario rem y es más conciso y eficaz, pero hay dos puntos a tener en cuenta:

Primero, excepto::, se considera cualquier línea de caracteres que comience con:; como etiqueta en el procesamiento por lotes, y todo el contenido posterior se ignora directamente. Solo para distinguirlo de las etiquetas normales, se recomienda usar etiqueta no reconocida, es decir, un símbolo especial que no es alfanumérico después de :. p>

En segundo lugar, a diferencia de rem, la línea de caracteres después de :: no se repetirá durante la ejecución, independientemente de si usa echo on para abrir el estado de eco de la línea de comando, porque el intérprete de comandos no cree que sea un comando válido. línea, desde este punto de vista, rem será más adecuado que:: en algunas situaciones, además, rem se puede utilizar en el archivo config.sys

=========. =============

echo significa mostrar los caracteres después de este comando

echo off significa que todos los comandos ejecutados después de esta declaración no mostrarán el comando línea en sí

@ es similar a echo off, pero se agrega al principio de cada línea de comando, lo que indica que la línea de comando de esta línea no se mostrará cuando se ejecute (solo puede afectar la línea actual ).

call llama a otro archivo por lotes (si llama a otro archivo por lotes directamente sin llamar, no podrá volver al archivo actual y ejecutar comandos posteriores del archivo actual después de ejecutar ese archivo por lotes).

pausa Al ejecutar esta oración se pausará la ejecución del lote y se mostrará el mensaje Presione cualquier tecla para continuar... en la pantalla, esperando que el usuario presione cualquier tecla para continuar.

rem significa este comando. Los caracteres siguientes son líneas de explicación (comentarios), que no se ejecutan y son solo para referencia futura (equivalente a comentarios en el programa).

==== Nota======

La descripción aquí es confusa, es mejor citar directamente la ayuda de la línea de comando de cada comando para estar más organizado

--------------------------

ECHO

Mostrar u ocultar lote procesando cuando el programa se está ejecutando El texto en el programa. También se puede utilizar para habilitar o deshabilitar la repetición de comandos.

Cuando se ejecuta un programa por lotes, MS-DOS normalmente muestra (repite) los comandos del programa por lotes en la pantalla.

Utilice el comando ECHO para desactivar esta función.

Sintaxis

ECHO [ON|OFF]

Para utilizar el comando echo para mostrar un comando, se puede utilizar la siguiente sintaxis:

echo [mensaje]

Parámetros

ON|OFF

Especifique si se permite el eco del comando. Para mostrar la configuración actual de ECHO, utilice el comando ECHO sin parámetros.

mensaje

Especifique el texto que MS-DOS muestra en la pantalla.

------------------

LLAMADA

Llame a un programa por lotes desde otro programa por lotes sin causar el primer lote en abortar.

Sintaxis

CALL [unidad:][ruta]nombre de archivo [parámetros-batch]

Parámetros

[unidad:][ruta ]nombre de archivo

Especifique el nombre del programa por lotes que se llamará y su ubicación de almacenamiento. El nombre del archivo debe usar .BAT como extensión.

batch-parameters

Especifique la información de la línea de comando requerida por el programa por lotes.

-------------------------------

PAUSA

Pausa la ejecución de un programa por lotes y muestra un mensaje que solicita al usuario que presione cualquier tecla para continuar la ejecución. Este comando sólo se puede utilizar dentro de un

procesador por lotes.

Sintaxis

PAUSE

REM

Añadir comentarios al archivo por lotes o CONFIG.SYS. El comando REM también se puede usar para bloquear comandos (también se puede usar un punto y coma en CONFIG.SYS

; para reemplazar el comando REM, pero no se puede reemplazar en un archivo por lotes).

Sintaxis

REM [cadena]

Parámetros

cadena

Especifique el comando que se bloqueará o incluir anotaciones.

========================

Ejemplo 1: use editar para editar el archivo a.bat e ingrese lo siguiente El contenido se guarda como c:\a.bat. Después de ejecutar este archivo por lotes, puede escribir todos los archivos en el directorio raíz en a.txt, iniciar UCDOS e ingresar a WPS y otras funciones.

El contenido del archivo por lotes es: Comentarios del comando:

@echo off no muestra las líneas de comando posteriores ni la línea de comando actual

dir c:\ *.* gt; a.txt Escribe la lista de archivos de la unidad c en a.txt

llamar a c:\ucdos\ucdos.bat llamar a ucdos

echo Hola muestra "Hola" < / p>

pause Pausa, espera a que la tecla continúe

rem Prepárate para ejecutar wps Nota: Prepárate para ejecutar wps

cd ucdos Ingresa al directorio ucdos

wps Ejecutar wps

Parámetros de archivos por lotes

Los archivos por lotes también pueden usar parámetros como funciones del lenguaje C (equivalentes a los parámetros de línea de comandos de los comandos de DOS), lo que requiere el uso de un indicador de parámetro "".

[1-9] representa parámetros. Los parámetros se refieren a cadenas separadas por espacios (o Tabulador) agregados después del nombre del archivo al ejecutar el archivo por lotes. Las variables pueden oscilar entre 0 y 9, 0 representa el comando por lotes en sí y otras cadenas de parámetros se representan en orden del 1 al 9.

Ejemplo 2: C: Hay un archivo de procesamiento por lotes llamado f.bat en el directorio raíz, con el contenido:

@echo off

formato 1

Si ejecuta C:\gt; f a:

Luego, al ejecutar f.bat, 1 significa a:, por lo que el formato 1 es equivalente al formato a:, entonces cuando lo anterior se ejecuta el comando Lo que realmente se ejecuta es el formato a:

Ejemplo 3: el nombre del archivo de procesamiento por lotes en el directorio raíz C: es t.bat y el contenido es:

@ eco desactivado

tipo 1

tipo 2

Luego ejecuta C:\gt;t a.txt b.txt

1: representa a.txt

2: Representa b.txt

Entonces, el comando anterior mostrará el contenido de los archivos a.txt y b.txt secuencialmente.

==== Nota===============

Los parámetros también se tratan como variables en el procesamiento por lotes, por lo que el signo de porcentaje también se utilizado Como guía, va seguido de un número del 0 al 9 para formar una referencia de parámetro. La relación entre la referencia y el parámetro (por ejemplo, 1 y a: arriba) es similar a la relación entre el puntero variable y el. Cuando queremos hacer referencia al undécimo o más parámetros, se debe mover el puntero de inicio del parámetro de DOS. El comando shift desempeña el papel de este puntero en movimiento. Mueve el puntero de inicio del parámetro al siguiente parámetro. , similar al funcionamiento del puntero en lenguaje C. El diagrama es el siguiente:

En el estado inicial, cmd es el nombre del comando y se puede hacer referencia a él con 0

cmd arg1 arg2. arg3 arg5 arg7 arg9 arg10

^ ^ ^ ^ ^ ^ ^ ^

| | 1 2 3 4 5 6 7 8 9

Después de 1 turno, no se hará referencia a cmd

cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

^ ^ ^ ^ ^ ^ ^ ^

| Después de 2 turnos, arg1 también se descarta 9 puntos a nulo y no tiene significado de referencia

cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

^ ^ ^ ^ ^ ^ ^. ^ ^

| | | | |

0 1 2 3 4 6 7 8

Desafortunadamente, la operación no es así. compatible con win9x y DOS Solo en nt En el entorno de línea de comando del kernel, shift solo admite el parámetro /n, que puede devolver el puntero de inicio de movimiento según el primer parámetro. ========== =

Comando especial

si la opción goto for es un comando relativamente avanzado en archivos por lotes. Si eres competente en su uso, lo eres. un experto en archivos por lotes.

1. If es una declaración condicional, que se utiliza para determinar si se cumplen las condiciones especificadas, decidiendo así ejecutar diferentes comandos.

Hay tres formatos:

1. if [not] "parámetro" == "cadena" comando a ejecutar

Si el parámetro es igual (no significa desigual, lo mismo a continuación). ), especifique la cadena; si la condición es verdadera, ejecute el comando; de lo contrario, ejecute la siguiente oración.

Ejemplo: si "1"=="a" formatea a:

====

La descripción de este punto en la ayuda de la línea de comando de if es:

IF [NOT] string1==string2 comando

Aquí hay que tener en cuenta los siguientes puntos:

1. Las comillas dobles que contienen la cadena. are not Es necesario para la sintaxis, pero es solo un carácter "antiaéreo" habitual

2. string1 no es necesariamente un parámetro, también puede ser una variable de entorno, una variable de bucle y otras constantes de cadena. o variables

3. El comando no es necesario para la sintaxis, la cadena2 seguida de un espacio puede formar una línea de comando válida

============== ==== ===========

2. si [no] existe [ruta\] nombre del archivo comando a ejecutar

Si hay un archivo especificado, luego la condición Si se establece, ejecute el comando; de lo contrario, ejecute la siguiente oración.

Por ejemplo: si existe c:\config.sys escriba c:\config.sys

Indica que si el archivo c:\config.sys existe, se mostrará su contenido .

****** Nota**********

También puedes usar el siguiente uso:

si existe comando

dispositivo se refiere al dispositivo cargado en el sistema DOS, generalmente bajo win98:

AUX, PRN, CON, NUL

COM1, COM2, COM3, COM4

p>

LPT1, LPT2, LPT3, LPT4

XMSXXXX0, EMMXXXX0

A: B: C: ...,

CLOCK$, CONFIG $, DblBuff$, IFS$HLP$

El contenido específico variará ligeramente debido a los diferentes entornos de hardware y software. Al utilizar estos nombres de dispositivos, debe garantizar los tres puntos siguientes. :

1. El dispositivo existe (excepto los dispositivos virtualizados por software)

2. El controlador del dispositivo se ha cargado (los dispositivos estándar como aux y prn los define el sistema. por defecto)

3 . El dispositivo está listo (principalmente se refiere a: b:..., com1..., lpt1..., etc.)

Puede. se puede obtener mediante el comando mem/d | find "device" /i Revise los dispositivos cargados en su sistema

Además, en el sistema DOS, el dispositivo también se considera un archivo especial y el archivo también puede llamarse dispositivo de caracteres; porque dispositivo (dispositivo) y archivo Todos se administran mediante identificadores. El identificador es el nombre, similar al nombre del archivo, excepto que el identificador no se usa para la administración del disco, sino para la administración de la memoria. -La carga del dispositivo llamado se refiere a la asignación de datos disponibles en la memoria. El identificador al que se hace referencia. ============

3. if errorlevel lt; número de comando a ejecutar

Muchos programas de DOS devolverán un valor numérico después de ejecutarlo. indique el resultado (o estado) del programa, a través del comando if errorlevel Puede juzgar el valor de retorno del programa y decidir ejecutar diferentes comandos en función de diferentes valores de retorno (los valores de retorno deben organizarse en orden desde de mayor a menor). Si el valor de retorno es igual al número especificado, la condición es verdadera y se ejecuta el comando; de lo contrario, se ejecuta la siguiente oración.

Por ejemplo, si el nivel de error 2 va a x2

==== Nota ===========

El valor de retorno es grande a pequeño El orden no es necesario, pero es solo un uso común cuando el comando de ejecución es goto. Cuando se usa set como comando de ejecución, generalmente se ordena de pequeño a grande. Por ejemplo, si necesita devolver. código en una variable de entorno, debe utilizar el siguiente formulario de pedido:

si el nivel de error 1 establece el=1

si el nivel de error 2 establece el=2

si el nivel de error 3 establece el=3

si el nivel de error 4 establece el=4

si el nivel de error 5 establece el=5

...

Por supuesto, también puedes usar el siguiente bucle. El principio es consistente:

for e in (1 2 3 4 5 6 7 8...) do if errorlevel e set el=e.

Para un uso más eficiente y conciso, puede consultarme Otro artículo escrito sobre cómo obtener el nivel de error

La razón de este fenómeno es que la condición de juicio de si el código de retorno de comparación del nivel de error no es igual a, pero mayor o igual a. Debido a las características de salto de goto, de pequeño La clasificación de grande a pequeña hará que salte el código de retorno más pequeño y, debido a la función de asignación "repetida" del comando set, la clasificación; de grande a pequeño hará que el código de retorno más pequeño "cubra" el código de retorno más grande

Además, aunque si errorlevel=lt number gt también es una línea de comando válida, es solo eso; command.com ignora = como separador de línea de comando al interpretar la línea de comando

=============================

2. Cuando el archivo por lotes goto se ejecuta aquí, saltará al punto especificado por goto en la etiqueta (la etiqueta es etiqueta, la etiqueta se define con: seguida de una cadena estándar). la instrucción goto generalmente se usa junto con if para ejecutar diferentes grupos de comandos según diferentes condiciones.

Por ejemplo:

ir al final

:end

echo este es el final

La etiqueta es ":String" para definir, la línea que contiene la etiqueta no se ejecutará.

==== willsort Nota del editor

la etiqueta a menudo se traduce como "etiqueta", pero no existe un consenso general sobre esto.

goto está relacionado con: Combinado. El uso puede realizar saltos en medio de la ejecución y, combinado con if, puede realizar ramas condicionales en el proceso de ejecución. Múltiples ifs pueden realizar la agrupación de comandos, similar a la estructura de caso de cambio en C o la estructura de caso de selección en Básico, grande. Las funciones de función escalables y estructuradas en lenguajes de alto nivel se pueden realizar agrupando comandos. La siguiente es una comparación de la estructura de sintaxis del procesamiento por lotes y C/Basic:

Batch C/Basic

gotoamp;: gotoamp ;:

gotoamp;:amp;if if{}amp;else{} / ifamp;elseifamp;endif

gotoamp;:amp;if ... switchamp;case / select case

gotoamp;:amp;ifamp;setamp;envar... function() / function(), sub()

=== ======== =======================

3. un carácter (para selección), de modo que la selección del usuario devuelva diferentes niveles de error y luego coopere con if errorlevel para ejecutar diferentes comandos de acuerdo con las selecciones del usuario.

Nota: El comando de elección es un comando externo proporcionado por los sistemas DOS o Windows. La sintaxis del comando de elección en diferentes versiones será ligeramente diferente. Utilice la opción /?.

La sintaxis del comando de elección (esta sintaxis es la sintaxis del comando de elección en Windows 2003, y la sintaxis del comando de otras versiones de elección es similar a esta):

ELECCIÓN [ /C opciones] [/ N] [/CS] [/T tiempo de espera /D elección] [/M texto]

Descripción:

Esta herramienta permite al usuario seleccionar un elemento de una lista de selección y devuelve el índice del elemento seleccionado.

Lista de parámetros:

/C elecciones Especifica la lista de opciones que se creará. La lista predeterminada es "YN".

/N Oculta la lista de opciones en el mensaje. Se muestra el mensaje anterior y la opción

permanece habilitada.

/CS Permite la selección de opciones que distinguen entre mayúsculas y minúsculas. De forma predeterminada, esta herramienta

no distingue entre mayúsculas y minúsculas.

/T timeout Número de segundos de pausa antes de realizar una selección predeterminada. Los valores aceptables son de 0

a 9999. Si se especifica 0, no habrá pausa y se seleccionará la opción predeterminada

.

/D opción especifica la opción predeterminada después de nnnn segundos. El carácter debe estar en el conjunto de opciones especificadas con la opción /C

; al mismo tiempo, nnnn debe especificarse con /T.

/M texto Especifica el mensaje que se mostrará antes del mensaje. Si no se especifica, la herramienta simplemente

muestra el mensaje.

/? Mostrar mensaje de ayuda.

Nota:

La variable de entorno ERRORLEVEL se establece en el índice clave seleccionado del conjunto de selección. La primera opción de la lista

devuelve 1, la segunda opción devuelve 2, y así sucesivamente.

Si la tecla presionada por el usuario no es una selección válida,

la herramienta emitirá un sonido de advertencia. Si la herramienta detecta una condición de error, devuelve un valor

ERRORLEVEL de 255. Si el usuario presiona las teclas Ctrl Break o Ctrl C, la herramienta devuelve un valor ERRORLEVEL de 0

. Cuando utilice el parámetro ERRORLEVEL en un programa por lotes, ordene los parámetros en orden

descendente.

Ejemplo:

ELECCIÓN /?

ELECCIÓN /C YNC /M "Presione Y para confirmar, N para confirmar o C para cancelar". p>

CHOICE /T 10 /C ync /CS /D y

CHOICE /C ab /M "Elija a para la opción 1 y elija b para la opción 2".

CHOICE /C ab /N /M "Elija a para la opción 1 y elija b para la opción 2

==== willsort Nota del editor========= === ====================

Enumero la ayuda de uso preferida en win98, que se ha distinguido

Espera a que el usuario elija una de un conjunto de opciones

Espera a que el usuario elija una de un conjunto de opciones

ELECCIÓN [/C[:]opciones] [ /N] [/ S] [/T[:]c,nn] [texto]

/C[:]choices Especifica las claves permitidas. El valor predeterminado es YN

Especifica las claves permitidas. (caracteres seleccionados), el valor predeterminado es YN

/N No mostrar opciones y ? al final de la cadena de solicitud

No mostrar signos de interrogación ni caracteres candidatos en la cadena de solicitud<. /p>

/S Tratar las claves de elección entre mayúsculas y minúsculas

Tratar las claves de elección entre mayúsculas y minúsculas

/T[:]c,nn Elección predeterminada a c después de nn segundos.

p>

C se selecciona de forma predeterminada después de nn segundos

texto Cadena de mensaje a mostrar

La cadena de mensaje a mostrar

ERRORLEVEL se establece en el desplazamiento de las pulsaciones clave del usuario en las opciones

ERRORLEVEL se establece en el valor de desplazamiento del carácter escrito por el usuario en los caracteres candidatos

Si ejecuto el. comando: CHOICE /C YNC /M "Confirmar Presione Y, o presione N si desea cancelar, o presione C si desea cancelar.

La pantalla mostrará:

Presione Y si desea confirmar, o presione N si desea cancelar, o presione C si desea cancelar.

[Y, N, C]?

Ejemplo: el contenido de test.bat es el siguiente (tenga en cuenta que cuando se utiliza if errorlevel para determinar el valor de retorno, el valor de retorno debe ordenarse de mayor a menor) :

@echo off

elección /C dme /M "defrag, mem, end"

si el nivel de error 3 va al final

si el nivel de error 2 va a mem

si el nivel de error 1 va a desfragmentar

:defrag

c:\dos\defrag

ir al final

: mem

mem

ir al final

:final

echo adiós

Después de ejecutar este lote, se mostrará "defrag, mem, end [D, M, E]?". El usuario puede seleccionar d m e, y luego la instrucción if juzgará según la selección del usuario. segmento de programa etiquetado como defrag, y m significa ejecutar el segmento de programa etiquetado como mem. segmento de programa, e significa ejecutar el segmento de programa etiquetado como final. Al final de cada segmento de programa, se usa ir al final para saltar el programa a la etiqueta final y luego. el programa mostrará adiós y finalizará el procesamiento por lotes.

4. Para el comando de bucle, siempre que se cumplan las condiciones, ejecutará el mismo comando varias veces.

Sintaxis:

Ejecutar un comando específico en cada archivo de un conjunto de archivos.

FOR variable IN (set) DO comando [command-parameters]

variable especifica un parámetro reemplazable de una sola letra.

(set) Especifica un archivo o un grupo de archivos. Se pueden utilizar caracteres comodín.

comando especifica el comando que se ejecutará para cada archivo.

command-parameters

Especifique parámetros o modificadores de línea de comando para un comando específico.

Por ejemplo, hay una línea en un archivo por lotes:

para c en (*.bat *.txt) escriba c

La línea de comando Se mostrará el contenido de todos los archivos con extensiones bat y txt en el directorio actual.

==== willsort Nota del editor===================================== =================

Cabe señalar que cuando la cadena en () no es un nombre de archivo único o múltiple, simplemente se considerará as Para el reemplazo de cadenas, esta característica junto con la característica de que se pueden incrustar múltiples cadenas en (), es obvio que for puede considerarse como un bucle transversal

Por supuesto, en nt/2000/xp. En la serie /2003 de entornos de línea de comandos, a for se le han otorgado más funciones, lo que le permite analizar la salida de comandos o cadenas en archivos, y se han utilizado muchos modificadores para expandir la función de reemplazo de archivos

==. ================================================= == ====================

Ejemplo de procesamiento por lotes

1. ) Primero use el Bloc de notas para crear un archivo por lotes test1.bat en C:\. El contenido del archivo es el siguiente:

@echo off

IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC. .BAT

SI NO EXISTE \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT no existe

Luego ejecútelo:

C:\gt;TEST1.BAT

Si el archivo AUTOEXEC.BAT existe en C:\, se mostrará su contenido. Si no existe, el proceso por lotes le indicará que el archivo no existe.

2) Luego cree un archivo test2.bat con el siguiente contenido:

@ECHO OFF

IF EXIST \1 TYPE \1

IF NOT EXIST \1 ECHO \1 no existe

Ejecución:

C:\gt;TEST2 AUTOEXEC.BAT

Los resultados de este comando son los mismos que los anteriores.

Descripción:

(1) IF EXIST se utiliza para probar si el archivo existe. El formato es

comando IF EXIST [nombre del archivo de ruta]. p >

(2) 1 en el archivo test2.bat es un parámetro. DOS permite pasar 9 información de parámetros por lotes al archivo por lotes, que van del 1 al 9 (0 representa el comando test2 en sí). Un poco como la práctica real en programación. La relación entre parámetros y parámetros formales, 1 es el parámetro formal y AUTOEXEC.BAT es el parámetro real.

==== willsort Nota del editor===================================== =================

DOS no tiene un límite de "permitir la transmisión de 9 información de parámetros por lotes. El número de parámetros solo se verá afectado". por la longitud de la línea de comando y la limitación de la capacidad de procesamiento de comandos de llamada. Sin embargo, en el programa por lotes, solo podemos hacer referencia a 10 parámetros al mismo tiempo, porque DOS solo proporciona diez caracteres de referencia de parámetros del 0 al 9. >

=============================================== ==== ======================

3) Además, cree un archivo llamado TEST3.BAT con el siguiente contenido:

p>

@echo desactivado

IF "1" == "A" ECHO XIAO

IF "2" == "B" ECHO TIAN

IF "3" == "C" ECHO XIN

Si ejecutas:

C:\gt;TEST3 A B C

La pantalla mostrar:

p>

XIAO

TIAN

XIN

Si se ejecuta:

C: \gt;TEST3 A B

La pantalla mostrará

XIAO

TIAN

Durante la ejecución de este comando, DOS asignará un cadena vacía al parámetro 3.

2. IF-ERRORLEVEL

Crea TEST4.BAT con el siguiente contenido:

@ECHO OFF

XCOPY C:\AUTOEXEC BAT D:\

IF ERRORLEVEL 1 ECHO copia falló

IF ERRORLEVEL 0 ECHO archivo se copió correctamente

Luego ejecute el archivo:

C:\gt;TEST4

Si la copia del archivo se realiza correctamente, la pantalla mostrará "Archivo copiado correctamente", de lo contrario mostrará "Error en la copia del archivo".

IF ERRORLEVEL se utiliza para probar el valor de retorno de su comando DOS anterior. Tenga en cuenta que es solo el valor de retorno del comando anterior y el valor de retorno debe juzgarse en orden de mayor a menor.

Entonces el siguiente archivo por lotes es incorrecto:

@ECHO OFF

XCOPY C:\AUTOEXEC.BAT D:\

IF ERRORLEVEL 0 ECHO El archivo se copió correctamente

IF ERRORLEVEL 1 ECHO No se encontró el archivo copiado

IF ERRORLEVEL 2 ECHO El usuario canceló la operación de copia mediante Ctrl-c

IF ERRORLEVEL 3 ECHO Error preestablecido impide la operación de copia de archivos

IF ERRORLEVEL 4 ECHO Error de escritura en disco durante el proceso de copia

No importa si la copia se realizó correctamente o no, lo siguiente:

No se encontró el archivo copiado

El usuario canceló la operación de copia mediante Ctrl-c

El error preestablecido impide la operación de copia del archivo

Se mostrará un error de escritura en el disco durante el proceso de copia

.

Los siguientes son los valores de retorno de varios comandos de uso común y sus significados:

copia de seguridad

0 Copia de seguridad exitosa

1 No encontrado Copia de seguridad de archivos

2 El conflicto al compartir archivos impide que se complete la copia de seguridad

3 El usuario cancela la copia de seguridad con Ctrl-c

4 La operación de copia de seguridad se canceló debido a un error fatal

diskcomp

0 Los discos se comparan iguales

1 Los discos son diferentes

2 El usuario cancela la operación de comparación mediante Ctrl -c

3 La operación de comparación fue abortada debido a un error fatal

4 Un error preestablecido abortó la comparación

copia de disco

0 La operación de copia del disco fue exitosa

1 Error de lectura/escritura del disco no fatal

2 El usuario finaliza la operación de copia mediante Ctrl-c

3 Copia del disco se cancela debido a un error fatal de procesamiento

4 El error preestablecido impide la operación de copia

formato

0 Formato exitoso

3 Usuario