La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cómo utilizar el bucle for en DOS?

¿Cómo utilizar el bucle for en DOS?

Los comandos se utilizan principalmente para procesar texto. Esta vez, hablaremos de sus otras funciones útiles además de su función en el procesamiento de texto.

Mire su formato básico (aquí me refiero al formato en el procesamiento por lotes, solo se necesita un símbolo % directamente en la línea de comando)

FOR parámetro %% nombre de variable IN( Archivos o comandos relacionados) Parámetro del comando DO: FOR tiene cuatro parámetros /d /l /r /f.

%%Nombre de variable: el nombre de esta variable puede ser una sola az minúscula o A-Z mayúscula. Distinguen entre mayúsculas y minúsculas y for le dará cada valor leído.

IN: ¡Solo escribe el formato del comando!

(Archivos o comandos relacionados): ¿Qué es la lectura y asignación de variables por FOR? Si no lo entiende, mire el siguiente ejemplo.

Hacer: ¡Simplemente escriba el formato del comando!

Comando ejecutado: Escribe aquí cómo procesar el valor de cada variable.

Si no entiendes mis instrucciones, ¿puedes escribir for/? ¡Mira la ayuda proporcionada por el sistema! Yo también estoy aquí para dar. Comparemos

PARA %%variable IN (establecer) comando DO [Comando-Parámetro]

% % variable especifica una sola letra para reemplazar el parámetro.

(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.

Parámetros de comando

Especifique parámetros o modificadores de línea de comando para un comando específico. Ahora hablemos del significado de cada parámetro. 1. Parámetro/d

FOR/D % variable IN (set) DO comando [command-parameter]

Si el conjunto contiene comodines, especifique que coincida con nombres de directorio en lugar de archivos .

Coincidencias de nombres.

Si el conjunto (es decir, los "archivos o comandos relacionados" que escribí anteriormente) contiene comodines (* y?), el comando especificado se ejecutará para cada directorio que coincida con el conjunto, en lugar del especificado. grupo de archivos de directorio en .

Este parámetro se utiliza principalmente para la búsqueda de directorios, no de archivos. Por favor mire este ejemplo.

@Desactivar echo

Para /d %%i en (c:\*), ejecute echo %%i

Abortar

Al ejecutarlo se imprimirán todos los nombres de los directorios en el directorio raíz de la unidad c, ¡y no se mostrará ninguno de los nombres de los archivos!

Aquí tenéis otro. Por ejemplo, debemos escribir el nombre de la carpeta en la ruta actual, que contiene solo de 1 a 3 letras.

@Close echo

Para /d %%i in(?) haga echo %%i

Abortar

De esta manera , si tiene un nombre de directorio con solo 1 a 3 letras en el directorio actual, se mostrará. De lo contrario, no se mostrará.

Explica * ¿y aquí? En el papel de los números, el signo * representa n caracteres cualesquiera, y? Este número solo representa un carácter.

¡Conoce a los personajes y dale a cada uno un tema en el que pensar!

@Close echo

para /d %%i en (¿ventana?) haga echo %%i

Abortar

Si se guarda ¿Qué se mostrará al ejecutar en la unidad c? ¡Vea usted mismo! Mostrar: ventana

El parámetro /D solo puede mostrar el nombre del directorio en el directorio actual. ¡Presta atención a esto! En segundo lugar, parámetro/R

FOR/R[[unidad:]ruta]% variable IN(set)DO comando[command-parameters]

verifique con [unidad:]ruta Be la raíz del árbol de directorios y apunte a cada directorio que contiene.

Para declaraciones, si no se especifica ningún directorio después de /R, se utiliza el directorio actual.

Directorio. Si el conjunto es solo un carácter de punto (.), se enumera el árbol de directorios. Recursión

Sabemos anteriormente que /D solo puede mostrar el nombre del directorio en la ruta actual, por lo que ahora este /R también está relacionado con el directorio.

¿Qué puede hacer? ¡No te preocupes, es mucho mejor que /D!

Puede leer todos los nombres de archivos en la ruta actual o que usted especifique. ¡Preste atención al nombre del archivo!

Tenga en cuenta dos puntos:

Si el nombre del archivo contiene comodines (? o *) en 1 y está configurado, enumere todos los archivos en el directorio especificado por el parámetro /R y use el siguientes subdirectorios, los directorios sin archivos coincidentes no se enumeran.

2. Por el contrario, si la colección contiene un nombre de archivo específico sin comodines, se enumerará el árbol de directorios (es decir, se enumerarán el directorio y todos los subdirectorios que contiene), independientemente de lo que se especifique. si el archivo especificado existe. Esto es lo mismo que el árbol de directorios de enumeración de un solo punto (.) mencionado anteriormente. Un solo punto representa el directorio actual, que también se puede ver como un archivo.

Ejemplo:

@Desactivar echo

para /r c:\ %%i en (*.exe) ejecutar echo %%i

Abortar

Guardemos este BAT en cualquier lugar de la unidad D y ejecutémoslo. ¡Veré que enumera todos los archivos EXE en el directorio raíz de la unidad c y los subdirectorios de cada directorio! ! ! !

Ejemplo:

@Desactivar eco

para /r %%i en (*.do @echo %%i

Abortar

¡Los parámetros son diferentes! No hay una ruta de búsqueda como C:\ delante de este comando, por lo que utilizará el directorio actual como ruta de búsqueda. Por ejemplo, si coloca este BAT en el archivo. d:\test directorio, aparecerá en la lista Extraiga todos los archivos EXE en el directorio D:\test y sus subdirectorios

Ejemplo:

@Desactivar echo

.

Para (boot.ini) /r c:\ %%i, ejecute echo %%i

Abortar

Después de ejecutar este ejemplo, se descubre que todos los directorios de la unidad C se enumeran para enumerar únicamente. El directorio donde se encuentra boot.ini, puede cambiarlo de la siguiente manera:

@turn off echo

for/r c:\ % % Yo en (boot . ini) hago si existe % % hago eco % % yo

Es bueno usar este comando

¡Todos deberían saber esto! /L

FOR/L % variable IN (inicio, paso, fin) DO comando [comando-parámetro]

Este conjunto indica un incremento de principio a fin Una serie de números <. /p>

Por lo tanto, (1, 1, 5) producirá la secuencia 1 2 3 4 5, y (5, 1, 1) producirá la secuencia (5. 4 3 2 1).

Utilice una variable de iteración para establecer un valor inicial (N.° de inicio) y luego ejecute gradualmente un rango de valores hasta que el valor exceda el valor final establecido (N.° de fin). Se ejecutará comparando N.° de inicio y N.° de fin. Si Start# es menor que End#, el comando se ejecutará. Si la variable de iteración excede End#, el intérprete de comandos saldrá del ciclo. También puede usar un paso negativo # para disminuir el valor gradualmente. en este rango, por ejemplo, (1, 1, 5) genera la secuencia 1 2 3 4 5, y (5, 1, 1) genera la secuencia (5 4 3 2 1). significa un poco mareado! ¡No te marees cuando miramos el ejemplo

@Close echo

Para /l %%i en (1, 1, 5) haz @! echo %%i

Abortar

Guarde la ejecución y vea el efecto. Imprimirá los cinco números 1 2 3 4 5

( 1, 1. , 5) Este parámetro significa comenzar desde 1 y agregar 1 cada vez hasta terminar en 5.

¡Tan pronto como me maree, imprimiré un número con P... para que todos puedan estar satisfechos! . Mira. Este ejemplo.

@Close echo

Para /l %%i en (1, 1, 5), inicie cmd

Abortar

¿Entraste en shock después de la ejecución? ¿Por qué hay cinco ventanas CMD más, jaja! Si cambias eso (1, 1, 5) a (1, 1, 65535), déjame decirte primero, se abrirá la ventana 65535 CMD... ¡Si no fallas, eres fuerte!

Por supuesto, también podemos cambiar start cmd a md %%i, lo que creará un directorio específico. ! ! El nombre es 1-65535

Después de leer esto, asigné parámetros destructivos y veamos el último parámetro.

Cuatro. Parámetros /F

\Iteración y análisis de archivos

Utilice el análisis de archivos para procesar la salida del comando, las cadenas y el contenido del archivo. Utilice variables de iteración para definir el contenido o la cadena a comprobar y utilice varias opciones para modificar aún más el método de análisis. Utilice la opción token de opciones para especificar qué tokens deben pasarse como variables de iteración. Nota: Cuando no se utiliza la opción token, /F solo verificará el primer token.

El proceso de análisis de archivos implica leer la salida, la cadena o el contenido del archivo, dividirlos en líneas de texto independientes y analizar cada línea en cero o más tokens. Luego se llama estableciendo el bucle for en el valor de la variable de iteración del token. De forma predeterminada, /F pasa el primer delimitador de espacios en blanco de cada línea en cada archivo. Salta líneas vacías. El formato de ayuda detallado es el siguiente:

FOR/F[" opciones "]% variable IN (conjunto de archivos) DO comando [comando-parámetro]

FOR/F[" opciones " ]% variable IN(" cadena ")DO comando[comando-parámetros]

FOR/F[" opciones "]% variable IN(' comando ')DO comando[comando-parámetros]

La cadena entre comillas "opciones" incluye una o más

Palabras clave que especifican diferentes opciones de análisis. Estas palabras clave son:

eol = c - indica el carácter de comentario de final de línea (solo uno)

skip = n - indica el número de líneas a ignorar al comienzo de la archivo.

delims = XXX: representa el conjunto de delimitadores. Esto reemplaza espacios y tabulaciones.

Delimitador predeterminado establecido.

Tokens=x,y,m-n: se refiere a qué token de cada fila se pasa a cada iteración.

Para ti. Esto hará que se asignen nombres de variables adicionales. Masculino Masculino

El formato es un rango. El mésimo se especifica mediante el símbolo enésimo. Si

el último carácter de la cadena es un asterisco,

las variables adicionales se resolverán después del último símbolo.

Asigna y acepta texto reservado para esta línea.

Usa comillas graves (la tecla a la izquierda del número 1 en tu teclado).

Cuando no se utiliza el parámetro usebackq: file-set representa un archivo, pero no puede contener espacios.

Las comillas dobles representan una cadena, es decir, "cadena"