Red de conocimiento informático - Aprendizaje de código fuente - ¡¡¡El procesamiento por lotes es eso!!!!

¡¡¡El procesamiento por lotes es eso!!!!

Introducción al procesamiento por lotes

Un archivo con la extensión bat (o cmd en nt/2000/xp/2003) es un archivo por lotes.

==== ordenará la edición ====================================== ==

.bat es un archivo por lotes en dos

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

Actualizado desde una perspectiva amplia . Los scripts de shell de Unix y otros textos interpretados y ejecutados en el shell por otros sistemas operativos e incluso aplicaciones tienen una función muy similar a los archivos por lotes, y también son interpretados y ejecutados por intérpretes especializados en unidades de comportamiento. Este tipo de texto La forma es más coloquial. conocido como lenguaje de scripting. Por lo tanto, hasta cierto punto, lote,

shell unix, awk, basic, perl

son los mismos que otros lenguajes de scripting, pero el ámbito de aplicación y la plataforma de interpretación son los mismos. diferente. . Incluso hay algunas aplicaciones que todavía utilizan el término lote, pero su contenido y extensiones son completamente diferentes a dos.

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

Primero Por encima de todo, un archivo por lotes es un archivo de texto en el que cada línea es un comando de DOS (en la mayoría de los casos, al igual que la línea de comando que ejecutamos en el símbolo del sistema de DOS), puede usarlo usando un editor de DOS o el Bloc de notas de Windows. Puede crear y modificar archivos por lotes utilizando cualquier herramienta de edición de archivos de texto, como Editar para DOS o el Bloc de notas para Windows.

==== willsort title="===================

Los archivos por lotes pueden usar comandos que no sean de DOS, Incluso los archivos de datos ordinarios que no tienen características ejecutables. Esto se debe a que Windows es una nueva plataforma de interpretación, lo que hace que el uso del procesamiento por lotes sea cada vez más "marginal", por lo que el procesamiento por lotes que analizamos debe limitarse al entorno o comandos de DOS. , de lo contrario será necesario cambiar significativamente muchos conceptos y configuraciones

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

En segundo lugar, un archivo por lotes es un programa simple que puede controlar el flujo de comandos a través de declaraciones condicionales (if) y declaraciones de control de flujo (goto), y también puede usar bucles (for) para ejecutar comandos en un bucle. en lenguaje C, las capacidades de programación de archivos por lotes son muy limitadas y muy irregulares. La declaración del programa por lotes es un tipo de comando de DOS (incluidos comandos internos y comandos externos). La función del procesamiento por lotes depende principalmente de lo que utilice. p>

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

Los archivos por lotes también se pueden llamar lotes

<. p>Un programa es diferente de un lenguaje compilado. Tomando el lenguaje C como ejemplo, un archivo con la extensión c o cpp puede llamarse archivo en lenguaje c o código fuente en lenguaje c, pero solo puede llamarse archivo en lenguaje c o lenguaje c. código fuente después de ser compilado y vinculado. El archivo exe puede denominarse programa en lenguaje C. Dado que el archivo por lotes en sí es tanto un archivo legible como un archivo ejecutable, los límites entre estos nombres son borrosos. p> ===== ======================

En tercer lugar, cada archivo por lotes escrito es equivalente a un comando externo de DOS, siempre y cuando coloque su directorio en la ruta de búsqueda de DOS y podrá dejar que se ejecute en cualquier lugar. Una buena práctica es crear un directorio bat o por lotes en su disco duro (por ejemplo, C:\BATCH) y colocar todos los archivos por lotes en él. directorio A continuación, puede ejecutar todos los programas por lotes en cualquier lugar siempre que c:\batch esté configurado en la ruta.

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

Puramente en un sistema DOS, los programas ejecutables se pueden dividir en cinco categorías de mayor a menor según la prioridad de ejecución: DOSKEY Macros (rellenadas previamente en la memoria), comandos internos en COMMAND.COM (rellenadas en cualquier momento según las condiciones de la memoria) y programas ejecutables con extensiones COM (rellenadas en cualquier momento). programa ejecutable de extensión (cargado directamente en la memoria por COMMAND.COM

). com

), archivo ejecutable extendido exe (cargado en la memoria después de ser reubicado por command.com

) y programa por lotes extendido bat (cargado en la memoria por command.com

Interpretar y analizar, y llamar al segundo, tercero y tercero en secuencia según su contenido). Los programas ejecutables segundo, tercero, cuarto y quinto se llaman en orden de prioridad, analizando una línea y ejecutando otra (el archivo en sí no se carga en la memoria)

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

Cuarto, en 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 cada vez que se inicia el sistema. . Puede ingresar comandos en este archivo que desea ejecutar cada vez que se inicia el sistema, como configurar rutas de búsqueda, cargar controladores de mouse y caché de disco, configurar variables de entorno del sistema, etc. El siguiente es un ejemplo de autoexec.bat ejecutándose en Windows.

98:

@ECHO OFF

RUTA C: \WINDOWS; C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;

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

LH SMARTDRV.EXE /X

LH DOSKEY.COM /INSERT

LH CTMOUSE.EXE

SET TEMP=D:\TEMP<

SET TMP=D:\TEMP

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

AUTOEXEC.BAT es un archivo por lotes que se ejecutado automáticamente por el sistema DOS. La interpretación y ejecución son iniciadas por COMMAND.COM. En comparación con DOSSTART.BAT, WINSTART.BAT

y muchos otros archivos por lotes de ejecución automática, AUTOEXEC.BAT también agrega .DOS .W40 .BAK .OLD .PWS

y muchos otros variantes para adaptarse a entornos complejos y necesidades cambiantes.

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

La siguiente clasificación de comandos deja mucho que desear. El comando @ en los comandos comunes no es un comando y los comandos comunes como dir y copiar no están incluidos.

Y 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 externos, hay un comando que se usa especialmente o se usa comúnmente para el procesamiento por lotes, que se puede llamar "comando de procesamiento por lotes".

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

Comandos por lotes

Un archivo por lotes o programa por lotes es un archivo que contiene el texto de múltiples comandos de MS-DOS con una extensión .BAT Cuando escribe lote en el símbolo del sistema Cuando el. Se especifica el nombre del programa, los comandos del programa por lotes se ejecutarán como un grupo mediante MS-DOS.

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 están diseñados para usarse con programas por lotes.

==========

Comandos comunes

echo, @, call, pausa y rem (consejo: use :: en lugar de rem ) son algunos de los comandos más utilizados en archivos por lotes, comencemos con ellos.

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

En primer lugar, @ no es un comando, es una marca especial para lotes de DOS Procesando, solo Se utiliza para evitar que se muestre la línea de comando.

Aquí hay algunos tokens especiales que puede ver 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) Definiciones de parámetros comunes

Tab(09) = Definiciones de parámetros inusuales

Tab(09) = Definición de parámetros inusuales;

Tab(09); = Tab(08); = Tab(09)

+ enlazador de archivos de comando COPY

*?

"" Definidor de cadenas

| Canalización de comandos

< > > > > Redirector de archivos

@ Máscara de retorno de fila de comandos

/ Asistente de cambio de parámetros

: Asistente de etiquetas de lote

% Asistente de variables de lote

:: segundo El propósito es que no es un definidor de parámetros ordinario. p> En segundo lugar, :: puede servir como comentario para rem y es más conciso y efectivo, pero hay dos cosas a tener en cuenta:

Primero, excepto ::, cualquier línea que comience con: will; se procesará en el proceso por lotes como una etiqueta, todo el contenido posterior se ignorará para distinguirlo de las etiquetas normales.

Se recomienda utilizar una etiqueta que no sea reconocida por goto. , seguido de una etiqueta que goto no reconoce. Se recomienda utilizar un símbolo especial no alfanumérico inmediatamente después de :.

En segundo lugar, a diferencia de rem, durante la ejecución, sin importar si se usa echo on o no, las líneas que siguen a :: no serán devueltas,

porque el intérprete de comandos no lo hace. se trata como una línea de comando válida, por lo que rem es más útil que :: en algunos casos, además, rem se puede usar en el archivo config.sys.

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

echo significa mostrar los caracteres después de este comando

echo off significa ejecutar todos los comandos después de esta declaración, pero no muestra la línea de comando en sí

@ es similar a echo off, pero se agrega en la parte superior de cada línea de comando para indicar que la línea de comando no se muestra cuando se ejecuta (solo afecta a la fila actual).

llamar

Llamar a otro archivo por lotes (si no utiliza la llamada para llamar a otro archivo por lotes, no podrá volver al archivo actual después de ejecutar el archivo por lotes, y no podrá regresar desde El archivo actual ejecuta comandos posteriores).

pausa Al ejecutar esta oración se pausará la ejecución del lote y se mostrará el mensaje en la pantalla: Presione cualquier tecla para

continuar.....

==== willsort =====

La descripción aquí es confusa, por lo que es mejor consultar la ayuda de la línea de comandos para obtener comandos más organizados

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

ECHO

Cuando el programa se esté ejecutando, mostrar u ocultar el cuerpo del programa por lotes. También se puede utilizar para permitir o deshabilitar la reversión de comandos.

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

Utiliza el comando ECHO para desactivar esta función.

Sintaxis

ECHO [ON|OFF]

Para mostrar un comando usando el comando echo, use la siguiente sintaxis:

echo [mensaje ]

Parámetros

ON|OFF

Especifica si se permite el eco del comando. Para mostrar la configuración actual de ECHO, utilice el comando ECHO

sin parámetros.

mensaje

Especifica el texto que MS-DOS quiere mostrar en pantalla.

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

CALL

Llama a un programa por lotes desde otros manejadores de lotes sin causando que el primer programa por lotes se cancele.

Sintaxis

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

Parámetros

[unidad:][ruta ]nombre de archivo

Especifica el nombre del programa por lotes que se llamará y su ubicación. La extensión del nombre del archivo debe ser .BAT.

parámetros de lote

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

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

PAUSA

Pausa la ejecución del 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 en programas de procesamiento por lotes.

Sintaxis

PAUSE

REM

Añade un comentario en el archivo por lotes o CONFIG.SYS. También puede usar el comando REM para bloquear comandos (también puede usar un punto y coma (;) en CONFIG.SYS

en lugar del comando REM, pero no en un archivo por lotes).

Sintaxis

REM [cadena]

Parámetros

cadena

Especificar el comando a bloquear o incluir anotación.

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

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

El contenido del archivo por lotes es el siguiente: Comentario del comando:

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

dir c :\*.* >a.txt Escriba la lista de archivos en el disco c en a.txt

llame a c:\ucdos\ucdos.bat llame a ucdos

echo hola muestra "hola "

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 se pueden utilizar como funciones C con parámetros (equivalentes a los parámetros de línea de comandos de los comandos de DOS), lo que requiere la Notación de parámetro "%".

%[1-9] representa el parámetro, que es una cadena separada por espacios (o tabulaciones) que se agrega al nombre del archivo cuando se ejecuta el archivo por lotes. Las variables varían de %0 a %9, donde %0 representa el comando por lotes en sí y otras cadenas de parámetros se representan en el orden de %1 a %9.

Ejemplo 2: Hay un archivo por lotes llamado f.bat en el directorio raíz C:, su contenido es el siguiente:

@echo off

formato %1

Si se ejecuta C:\>f a:

, cuando se ejecuta f.bat, %1 representa a:, por lo que el formato %1 es %0. bat, por lo que el formato %1 es equivalente al formato a:, por lo que el comando anterior en realidad ejecuta el formato

a:

Ejemplo 3: un lote en el directorio raíz de C : ha sido procesado El archivo se llama t.bat y el contenido es:

@echo off

tipo %1

tipo %2

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

%1: representa a.txt

%2: representa b.txt

Por lo tanto, lo anterior El comando mostrará el contenido de los archivos a.txt y b.txt en secuencia.

==== ordenará editar ===============

En el procesamiento por lotes, los parámetros también se consideran variables, por lo que el porcentaje es También se utiliza como carácter inicial, seguido de un número del 0 al 9 para formar una referencia de parámetro. La relación entre referencias y parámetros

(por ejemplo, %1 y a: arriba) es similar a la relación entre punteros de variables y valores de variables. Para hacer referencia al argumento número 11 o más, el puntero DOS

debe moverse al principio del argumento. Sólo en el entorno de línea de comandos del kernel nt, shift admite el parámetro /n, que mueve el puntero inicial hacia adelante y hacia atrás desde el primer parámetro.

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

Comandos especiales

si la opción Ir a es un lote Process Uno de los comandos más avanzados del archivo. Si eres muy bueno usándolo, 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 a (no es igual a, igual a continuación) Cadena especificada, si la condición es verdadera, ejecute el comando; de lo contrario, ejecute la siguiente oración.

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

==== willsort Nota del editor

La ayuda de la línea de comando de if will ordenarlo Descrito como:

IF [NOT] string1==string2 comando

Hay algunas cosas a tener en cuenta aquí.

1. Las comillas dobles en la cadena no son gramaticalmente necesarias, son simplemente caracteres "anti-nulos" convencionales.

2. cadena1 no tiene que ser un parámetro, puede también pueden ser variables de entorno, variables de bucle y otras constantes o variables de cadena

3. Comando que se ejecutará si [no] existe [ruta\]nombre de archivo

Si el archivo existe, la condición es verdadero y ejecuta el comando; de lo contrario, ejecuta la siguiente oración.

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

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

****** ordenará editar ********

También puede utilizar el siguiente uso:

comando si existe

dispositivo es un dispositivo cargado en el sistema DOS En Win98, normalmente existen los siguientes dispositivos:

AUX, PRN, CON, NUL

COM1, COM2,. COM3, COM4

LPT1, LPT2, LPT3, LPT4

XMSXXXX0, EMMXXXX0

A: B: C: ....

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

Los detalles pueden variar ligeramente dependiendo de su entorno de hardware y software, pero para usar estos nombres de dispositivos debe asegurarse de las siguientes tres cosas:

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

2. El controlador del dispositivo se ha cargado (el sistema define los dispositivos estándar de forma predeterminada, como aux, prn, etc. .)

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

Puedes usar el comando mem/d | busque "dispositivo" /i para ver el sistema El dispositivo cargado en

Además, en el sistema DOS, el dispositivo también se considera un archivo especial y el archivo también se puede llamar un dispositivo de caracteres;

Porque tanto el dispositivo como el archivo están compuestos por Se administra por identificador y el identificador es el nombre del dispositivo.

Porque tanto los dispositivos como los archivos se administran mediante identificadores, y un identificador es un nombre, similar a un nombre de archivo, excepto que el identificador no se usa para la administración del disco,

sino para Gestión de memoria, es decir, asignar un identificador referenciado en la memoria al dispositivo que se está cargando.

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

3. if errorlevel Comando a ejecutar

Muchos programas de DOS devolverán un valor a través del comando if

errorlevel al final de la ejecución para representar el resultado de la ejecución del programa ( o el estado del programa). p>

El comando errorlevel determina el valor de retorno del programa y decide qué comandos ejecutar en función de diferentes valores de retorno (deben estar en orden descendente). Si el valor de retorno es igual al número especificado, entonces se cumple la condición y se ejecuta el comando; de lo contrario, se ejecuta la siguiente oración.

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

==== ordenará editar ===========

Valores devueltos de grande a pequeño El orden no es necesario. Solo se usa cuando se ejecuta el comando goto Cuando se usa set como comando a ejecutar,

Generalmente cuando se usa set como comando,

Generalmente se organizará de pequeño a grande. Por ejemplo, si necesita colocar el código de retorno en una variable de entorno, debe usar el siguiente orden:

Si el nivel de error es 1, establezca el. =1

Si nivel de error 2 Establecer el=2

Si nivel de error 3 Establecer el=3

Si nivel de error 4 Establecer el=4

Si el nivel de error 5 establece el=5

...

Por supuesto, también puedes usar el siguiente bucle, el principio es el mismo:

para %%e en (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e

Para obtener un método más eficiente y conciso, por favor consulte mi otro artículo sobre cómo obtener el nivel de error

La razón de esto es que el código de retorno de la comparación if errorlevel no es igual a, sino mayor que.

Debido a las características de salto de goto,

ordenar de pequeño a grande dará como resultado un salto en un código de retorno más pequeño y debido a las características de "repetición" del comando set, ordenar de grande a pequeño; dar como resultado un código de retorno más pequeño. Los códigos de retorno "anulan" los códigos de retorno más grandes.

Además, aunque el comando if errorlevel= es una línea de comando válida, es solo un comando. com interpreta la línea de comando e ignora

= como control deslizante de línea de comando

========================= = ==<

En segundo lugar, cuando el archivo por lotes goto

se ejecuta aquí, saltará a la etiqueta ir especificada (la etiqueta es etiqueta y la etiqueta va seguida de: el estándar cadena definida), la instrucción goto generalmente se usa en combinación con if para ejecutar diferentes grupos de comandos de acuerdo con diferentes condiciones.

Por ejemplo:

ir al final

:end

echo este es el final

La etiqueta consta de la definición ":String", la línea donde se encuentra la etiqueta no se ejecutará.

==== willsort Nota del editor

La etiqueta a menudo se traduce como "etiqueta", pero esta afirmación no es ampliamente reconocida.

goto y : se pueden usar juntos para saltar durante la ejecución, if se puede usar para implementar ramas condicionales y se pueden usar múltiples ifs para agrupar comandos, similar a la estructura de cambio de caso en lenguaje C o lenguaje básico. La estructura de selección de casos en

Agrupación de comandos estructurados a gran escala se puede utilizar para implementar funciones en lenguajes de alto nivel. endif

goto&:&if... cambiar&case / seleccionar caso

goto&:&if&set&envar... function() / function(),sub()

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

Seleccionar este comando permite al usuario ingresar. Un carácter (para selección) y devuelve diferentes niveles de error según la selección del usuario.

Nota: El comando de selección es un comando externo proporcionado por DOS o Windows. Las diferentes versiones del comando de selección tienen una sintaxis ligeramente diferente. Utilice la opción

/?. él.

La sintaxis del comando de elección (esta es la sintaxis del comando de elección en Windows 2003, otras versiones de elección también son similares):

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 options Especifica la lista de opciones a crear. La lista predeterminada es "YN".

/N Oculta la lista de opciones cuando se le solicita. Muestra la información antes del mensaje y la opción

permanece habilitada.

La opción /CS permite distinguir entre mayúsculas y minúsculas. De forma predeterminada, la 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 se realiza ninguna pausa y se selecciona la opción predeterminada

.

La opción /D especifica la opción predeterminada después de nnnn segundos. Los caracteres deben estar en el conjunto de opciones especificado con /C elección

; además, nnnn debe especificarse con /T.

/M texto Especifica la información que se muestra antes del mensaje.

Si no se especifica, la herramienta solo

mostrará el mensaje.

/?Mostrar información de ayuda.

Nota:

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

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

La herramienta emitirá un aviso si la tecla pulsada por el usuario no es una selección válida. Si la herramienta detecta una condición de error, devuelve

ERRORLEVEL 255. Si el usuario presiona Ctrl+Interrupción o Ctrl+C, la herramienta devuelve 0

ERRORLEVEL. Cuando se utiliza el parámetro ERRORLEVEL en un programa por lotes, los parámetros se organizan en orden descendente

.

Ejemplo:

CHOICE /?

CHOICE /C YNC /M "Presione Y para confirmar, N para confirmar y 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."

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

Seleccione /C ab /N /M "Elija b para la opción 2. 1 Elija a, opción 2, seleccione b "

==== ordenará la edición ========================= == ==

He enumerado el uso de elección en la ayuda de win98, que se ha distinguido

Espere a que el usuario seleccione una de un conjunto de opciones.

Espera a que el usuario seleccione una de un conjunto de opciones.

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

/C[:]opciones Especifique las claves permitidas. El valor predeterminado es YN

Especifica las pulsaciones de teclas permitidas. El valor predeterminado es YN

/N no muestra opciones y? al final de la cadena del mensaje.

Maneja los caracteres de selección distinguiendo entre mayúsculas y minúsculas

/T[ :]c,nn La selección predeterminada después de nn segundos es c

La selección predeterminada después de nn segundos es c

texto La cadena de mensaje que se mostrará

El cadena de mensaje que se mostrará

p>

ERRORLEVEL se establece en el desplazamiento de la tecla presionada por el usuario en la selección.

ERRORLEVEL se establece en el desplazamiento de la tecla presionada por el usuario en la selección.

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

Si ejecuto el comando: CHOICE /C YNC /M "Presione Y para confirmar, N para no o C para cancelar.

"

La pantalla mostrará:

Para confirmar, presione Y, para confirmar, presione N, o para cancelar, presione C [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 se organiza en orden descendente):

@echo off

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

si nivel de error 3 ir al final

si nivel de error 2 ir a mem

si nivel de error 1 ir a desfragmentar

: defrag

c:\dos\defrag

ir al final

:mem

mem

ir al final

:end

hacer eco adiós

Después de ejecutar el proceso por lotes, "defrag,mem,end[ Se mostrará D,M,E]?". Usuario Puede elegir d m e

, y luego la declaración if hace un juicio basado en la elección del usuario, d significa ejecutar la etiqueta defr