Finalidad: | Repetir un comando para varios valores de una variable |
Formato: | Modo de archivo y cadena |
PARA [distancia...] [/I"texto"] [/A:[[-|+]rhsadecijopt /D /F ["opciones"] /H /Nj /O:[-]adegnrstu /R [camino] [/T"delimitadores"] /W ] %var EN ([@]para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.) HACER comando | (comando ... [DEJAR PARA] )
Modo contado
FOR /L %var IN (inicio, paso, fin) DO comando | (comando... [LEAVEFOR])
opciones | Opciones de análisis para un "análisis de archivos" FOR. |
distancia | Uno o mas distancia Especificaciones |
camino | El directorio inicial para un FOR "recursivo". |
%var | La variable que se utilizará en el comando ("variable FOR"). |
para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. | Un conjunto de valores para la variable. |
comienzo | El valor inicial para un FOR "contado". |
paso | El valor de incremento para un FOR "contado". |
final | El valor límite para un FOR "contado". |
comando | Un comando o grupo de comandos a ejecutar para cada valor de la variable. |
/N (valores predeterminados) |
|
|
Selección de archivo
soportes interruptores de atributos, extendido comodines, rangos, múltiples nombres de archivosy incluir listas.
Los rangos deben aparecer inmediatamente después de la palabra clave FOR después de las expansiones de alias (si las hay) y solo afectan la selección de archivos especificados mediante comodines.
Utilice comodines con precaución sobre volúmenes LFN; ver Búsquedas de archivos LFN para obtener más detalles.
Uso:
FOR comienza creando un para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Luego ejecuta un comando para cada miembro de para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. El comando puede ser un comando interno, un alias, un comando externo o un archivo por lotes. Los miembros de para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. puede ser una lista de nombres de archivos, cadenas de texto, un grupo de valores numéricos o texto leído de una lista de archivos.
Cuándo para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. se compone de texto o varios nombres de archivos separados (no una lista de inclusión), los elementos deben estar separados por espacios, tabulaciones o comas.
FOR incluye una gran cantidad de opciones, algunas de las cuales duplican funciones disponibles en otros comandos internos. También admite convenciones adicionales que no se encuentran en nuestros otros comandos, incluidas por compatibilidad con CMD.
Las primeras tres secciones a continuación (Trabajar con archivos, Trabajar con textoy Recuperar texto de archivos) describir el comando FOR y las mejoras al mismo que se incluyen en TCC-RT. Las secciones sobre Analizar texto de archivos Bucles FOR contados describir las características agregadas para la compatibilidad con CMD. las secciones Recursión de directorio Redirección de salida advertir de consideraciones especiales. La sección titulada Otras Notas contiene información que puede necesitar si utiliza ampliamente cualquier aspecto del comando FOR.
FOR establece dos variables internas:
%_for_files | El número de archivos procesados. |
%_for_errors | el numero de errores |
Si La opción de configuración de errores CMD duplicados está configurada, TCC-RT emulará el comportamiento CMD no documentado cuando FOR para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. Los argumentos se dividen en varias líneas. Por ejemplo:
para %a en (
one
two
three
) hacer (
eco %a
)
Normalmente, para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. es una lista de archivos especificados con comodines. Por ejemplo, si usa esta línea en un archivo por lotes:
para %x en (*.txt) lista %x
Entonces Anuncia se ejecutará una vez para cada archivo en el directorio actual con la extensión .TXT. La variable FOR %x se establece igual a cada uno de los nombres de archivo por turno, luego se ejecuta el comando LIST para cada archivo. (Podrías hacer lo mismo más fácilmente con un simple LISTA *.TXT. Usamos FOR aquí para que pueda tener una idea de cómo funciona, usando un ejemplo simple. Muchos de los ejemplos de esta sección están construidos de la misma manera).
Set Puede incluir varios archivos e incluir listas, como esta:
para %x en (d:\*.txt;*.doc;*.asc e:\test\*.txt;*.doc) escriba %x
PARA soportes comodines y comodines extendidos, así como las directorio principal extendido nombres, por ejemplo: documentación que demuestre copropiedad de bienes, residencia compartida, recursos económicos combinados, declaraciones juradas de personas que lo conocen y que puedan dar fe de su relación y vida compartida, Decretos o certificados de adopción, Constancia de custodia legal de un niño adoptado durante un período de dos años, ...\*.TXT para procesar todos los .TXT archivos que están contenidos en el directorio 2 niveles por encima del directorio actual.
Por defecto aquellos miembros de para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. que incluyen comodines solo coinciden con archivos, no con directorios.
Cuando usa FOR en una unidad LFN, debe citar cualquier nombre de archivo dentro del conjunto que contenga espacios en blanco o caracteres especiales. La misma restricción puede aplicarse a los nombres devueltos en la variable FOR, si los pasa a TCC-Comandos internos RT u otros comandos que requieran citar nombres de archivos con espacios en blanco. FOR no cita los nombres devueltos automáticamente, incluso si incluyó comillas en el conjunto.
Si el conjunto incluye nombres de archivos, la lista de archivos se puede refinar aún más usando fecha, hora, tamaño, descripción y exclusión de archivos. rangos. El rango o rangos deben colocarse inmediatamente después de la palabra FOR. Los rangos afectan sólo a aquellos miembros del conjunto que contienen comodines. Por ejemplo, el FOR siguiente procesará todos los *.TXT archivos que se crearon o actualizaron el 4 de diciembre de 2018 y del archivo ABC.LST independientemente de su marca de tiempo:
para /[d12-4-2018,+0] %x en (*.txt abc.lst) ...
If comando es un comando interno que admite rangos, también se puede utilizar un rango independiente en comando misma.
También puede refinar la lista limitándola con el /A: opción para seleccionar solo archivos que tengan atributos específicos.
Cuando utiliza comodines para especificar para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas., FOR escanea el directorio y encuentra cada archivo que coincida con los nombres comodín que especificó. Si, durante el procesamiento del comando FOR, crea un nuevo archivo que podría incluirse en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas., puede aparecer o no en alguna iteración posterior del mismo comando FOR. La aparición o no del nuevo archivo depende de su ubicación física en la estructura del directorio. Por ejemplo, si usa FOR para ejecutar un comando para todos.TXT archivos y el comando también crea uno o más archivos .TXT archivos, esos archivos nuevos pueden procesarse o no durante el comando FOR actual, dependiendo de dónde estén ubicados en la estructura física del directorio. Esta es una restricción de Windows sobre la cual TCC-RT no tiene control. Por lo tanto, para lograr resultados consistentes, debe crear comandos FOR que no creen archivos que puedan formar parte del conjunto del comando actual.
Set También puede estar compuesto por texto en lugar de nombres de archivos. Por ejemplo, para crear tres archivos llamados file1, file2y file3, cada uno con una línea en blanco:
para %sufijo en (1 2 3) eco. > archivo%sufijo
También puede utilizar los nombres de las variables de entorno como texto. Este ejemplo muestra el nombre y el contenido de varias variables del entorno (consulte la discusión general sobre Entorno para obtener detalles sobre el uso de corchetes al expandir variables de entorno):
para %var en (comspec de solicitud de ruta) echo %var=%[%var]
Si el nombre de un archivo en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. tiene el prefijo @ (signo "arroba"), se considera como un @lista de archivos. FOR extrae cada línea del archivo y la coloca en la variable FOR.
advertencia: si la línea contiene caracteres que son sintácticamente significativos para TCC-RT, por ejemplo, uno de los caracteres <"[]|>, puede tener efectos indeseables. Puede utilizar la opción /X de SETDOS para mitigarlos.
Si utiliza @ESTAFA como nombre de archivo, FOR leerá desde la entrada estándar (normalmente un archivo de entrada redirigido) o desde una tubería. Si utiliza @ACORTAR: (o @CLIP0: - @CLIP9:) como nombre de archivo, FOR leerá cualquier texto disponible en el portapapeles de Windows. Ver Redirección y canalización para obtener más información sobre estas características.
See @lista de archivos para obtener detalles adicionales.
Otro método para trabajar con texto de archivos es hacer que FOR analice cada línea de cada archivo por usted. Para comenzar un análisis de archivos FOR, debe utilizar el /F opción e incluya uno o más nombres de archivos en el conjunto. Cuando utiliza esta forma de FOR, el nombre de la variable debe ser una sola letra, por ejemplo, %a.
Este método de análisis, incluido por compatibilidad con CMD, puede resultar engorroso e inflexible. Para un método más potente, utilice FOR con @Nombre del archivo como el para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. para recuperar cada línea del archivo, como se describe en la sección anterior, y usar funciones variables como @CAMPO, @INSTR, @IZQUIERDA, @BIENy @PALABRA para analizar la línea (ver Funciones variables para obtener información sobre funciones variables).
De forma predeterminada, FOR extraerá la primera palabra o token de cada línea y la devolverá en la variable. Por ejemplo, para mostrar la primera palabra en cada línea del archivo FLIST.TXT:
para /f %a en (flist.txt) echo %a
Puede controlar la forma en que FOR /F analiza cada línea especificando una o más opciones de análisis en una cadena entrecomillada inmediatamente después de la /F. Las opciones disponibles son:
saltar=n: FOR /F se saltará n líneas al principio de cada archivo antes de analizar el resto del archivo.
fichas =n, m, ...: De forma predeterminada, FOR /F devuelve sólo la primera palabra o ficha de cada línea analizada en la variable que nombró. Puede hacer que devuelva más de un token en la variable, o que devuelva tokens en varias variables, con esta opción.
Esta opción va seguida de una lista de números separados por comas. El primer número le dice a FOR /F qué token devolver en la primera variable, el segundo número le dice cuál devolver en la segunda variable, etc. Las variables se suceden alfabéticamente comenzando con la variable que nombre en la línea de comando FOR. Este ejemplo devuelve la primera palabra de cada línea en TEST.TXT en %d, el segundo en %ey el tercero en %f:
para /f "tokens=1,2,3" %d en (test.txt) ...
También puedes indicar un rango de tokens separando los números con un guión. -.
eol=c: Si FOR /F encuentra el carácter c en la línea, asumirá que el carácter y cualquier texto que le siga son parte de un comentario e ignorará el resto de la línea.
delims =xxx ..: De forma predeterminada, FOR /F ve espacios, tabulaciones y comas como delimitadores de palabras o tokens. Esta opción reemplaza esos delimitadores con todos los caracteres que siguen al signo igual hasta el final de la cadena. Por lo tanto, esta opción debe ser la última utilizada en la cadena de opciones citadas.
usobackq : Duplica lo incómodo CMD sintaxis. Una cadena entre comillas se ejecuta como un comando; una cadena entre comillas simples es una cadena literal; y las comillas dobles citan los nombres de los archivos en el conjunto de archivos. No recomendamos usobackq para archivos por lotes escritos para TCC-RT, como TCC-RT tiene formas mucho más elegantes de hacer las mismas cosas.
También puedes usar FOR /F para analizar una sola cadena en lugar de cada línea de un archivo usando la cadena, entre comillas, como conjunto. Por ejemplo, este comando asignará la variable A a la cuerda este vídeo , B a is, etc., luego muestre este vídeo :
for /f "tokens=1,2,3,4" %a in ("esto es una prueba") echo %a
El "contado PARA"El bucle está incluido por compatibilidad con CMD. En la mayoría de los casos, encontrará el DO comando más útil para realizar bucles contados.
En un comando FOR contado, el para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. se compone de valores numéricos en lugar de texto o nombres de archivos. Para comenzar un comando FOR contado, debe utilizar el /L opción y luego incluir tres valores, separados por comas, en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Estos son los comienzo, pasoy final valores. Durante la primera iteración del bucle FOR, la variable se establece igual a comienzo valor. Antes de cada iteración, la variable se incrementa en la paso valor. El ciclo termina cuando la variable excede el final valor. Este ejemplo imprimirá los números del 1 al 10:
para /l %val en (1,1,10) eco %val
Este ejemplo imprimirá los números impares de 1 a 10 (1, 3, 5, 7y 9):
para /l %val en (1,2,10) eco %val
La directiva paso El valor puede ser negativo. Si es así, el ciclo finalizará cuando la variable sea menor que el final .
La entrada numérica se puede ingresar en formato decimal (una secuencia de 0 a 9 dígitos) o en formato hexadecimal ("0x" seguido de una secuencia de 0 a F dígitos hexadecimales).
¡ADVERTENCIA! No debe haber espacios en blanco entre comienzo y la coma posterior, ni entre paso y su posterior coma. Se aceptan espacios en blanco después de la coma.
De forma predeterminada, FOR solo funciona con archivos en el directorio actual o en un directorio específico. interruptor de opción /R especifica que la búsqueda debe procesar subdirectorios de forma recursiva. Si especifica un nombre de directorio inmediatamente después /R, FOR comenzará en ese directorio y luego buscará en cada uno de sus subdirectorios. Si no se especifica ningún directorio después del /R, la búsqueda comienza en el directorio predeterminado actual. Si especifica un directorio, su nombre incluye caracteres especiales, debe estar entre comillas dobles. Por ejemplo, debe citarse si se especifica con la ayuda de una variable de entorno, por ejemplo, %windir\comando.
Hay dos diferencias en la invocación de comando causada por recursión de directorio:
•La variable de control de bucle contiene el nombre completo del archivo coincidente.
•comando se ejecuta con el directorio predeterminado establecido en el directorio en el que se encontró el archivo
Este ejemplo procesa todos .TXT archivos en el directorio actual y sus subdirectorios:
para /r %x en (*.txt) ...
Este ejemplo funciona con todos los .BAK archivos en el disco D:
para /r d:\ %x en (*.bak) ...
La redirección de salida predeterminada (es decir, para... > nombre de archivo) crea un nuevo archivo de salida en cada iteración. Si nombre de archivo no incluye una ruta de archivo absoluta, se creará en relación con el directorio predeterminado actual. Si utiliza la recursión de directorios, esta ruta cambiará para cada directorio procesado. La forma más sencilla de forzar un único archivo de destino es encerrar todo el comando entre paréntesis, por ejemplo:
(para %x en el comando (establecer)) > nombre de archivo
•Puedes usar cualquiera % or %% delante del nombre de la variable (var) en el comando. Cualquiera de los dos formularios funcionará, ya sea que el comando FOR se escriba desde la línea de comando o sea parte de un alias o un archivo por lotes. (CMD que requiere un solo % si se usa FOR en la línea de comando, pero requiere %% si se usa FOR en un archivo por lotes.) Tenga en cuenta que debe tener al menos un % firmar presente.
•El nombre de la variable puede tener hasta 80 caracteres.
•Si el comando FOR es un alias, por ejemplo, alias para=*para /h, distancia Se ignorarán las especificaciones.
•La palabra DO es innecesaria pero aceptada. No lo confundas con lo completamente ajeno. DO mando.
•Si el nombre de la variable FOR var es un solo carácter, por compatibilidad con CMD, se crea en el entorno de una manera especial que no sobrescribe una variable de entorno existente con el mismo nombre. Lo que sea comando contiene el signo % seguido inmediatamente por el carácter que es el nombre de la variable FOR, se reemplaza por su valor, independientemente de los caracteres que lo siguen. Por ejemplo, el siguiente comando intenta agregar a: b: hasta el final de PATH, pero no funcionará según lo previsto:
para %p en (a: b:) ruta %ruta;%p
camino
b:ath;b:
La directiva %p in %camino se interpretó como la variable FOR %p seguido del texto ath, no lo que se pretendía. Para evitar esto, use una letra diferente o un nombre más largo para la variable FOR, o use corchetes alrededor del nombre de la variable, como se muestra en los ejemplos siguientes, cualquiera de los cuales logra el objetivo original:
para %p en (a: b:) ruta %[ruta];%p
para %x en (a: b:) ruta %ruta;%x
para %px en (a: b:) ruta %path;%px
•Si el nombre de la variable FOR contiene más de un carácter, se crea en el entorno y se borra cuando se completa FOR, independientemente de que existiera o no una variable con ese nombre antes de FOR. No se puede modificar con el SET, ESETo UNSET comandos. Si ya tenía una variable con ese nombre, ya no será accesible. Por ejemplo, un comando que comienza
para % ruta en...
escribirá sobre su configuración PATH actual, luego borrará la variable PATH por completo cuando FOR haya terminado.
•Comando También puede utilizar la variable FOR con la sintaxis especial de CMD descrita en Sintaxis especial para compatibilidad CMD.
•El siguiente ejemplo utiliza FOR con funciones variables para eliminar el .BAK archivos para los cuales un correspondiente .TXT El archivo existe en el directorio actual (esto debe ingresarse en una línea):
para %archivo en (*.txt) del %@nombre[%archivo].bak
Es posible que el comando anterior no funcione correctamente en una unidad LFN, porque el comando devuelto ARCHIVO La variable puede contener espacios en blanco. Para corregir este problema, necesita dos conjuntos de comillas, uno para DEL y uno para %@NOMBRE:
para %archivo en (*.txt) del "%@name["%file"].bak"
•Puedes usar agrupación de comandos para ejecutar múltiples comandos para cada elemento en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Por ejemplo, el siguiente comando copia cada .WKQ archivo en el directorio actual al D:\WKSAVE directorio, luego cambia la extensión de cada archivo en el directorio actual a .SAV:
[para %archivo en (*.wkq) (copiar %archivo d:\wksave\ & ren %archivo *.sav)
o (en un archivo por lotes):
para %archivo en (*.wkq) (
copiar %archivo d:\wksave\
ren %archivo *.sav
)
•En un archivo por lotes puedes usar GOSUB ejecutar una subrutina para cada elemento en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Dentro de la subrutina, la variable FOR se puede utilizar como variable de entorno. Esta es una manera conveniente de ejecutar una secuencia compleja de comandos para cada elemento en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. sin LLAMENOSing otro archivo por lotes.
•Un uso inusual de FOR es ejecutar una colección de archivos por lotes u otros comandos con el mismo parámetro. Por ejemplo, es posible que desee que tres archivos por lotes operen en el mismo archivo de datos. El comando FOR podría verse así:
para %cmd en (filetest fileform fileprnt) %cmd archivo de datos
Esta línea se expandirá a tres comandos separados:
archivo de datos de prueba de archivo
archivo de datos de formato de archivo
archivo de datos de impresión de archivo
•Las declaraciones FOR se pueden anidar.
DEJAR PARA
La palabra clave especial LEAVEFOR se puede utilizar dentro de un grupo de comando FOR. LEAVEFOR finaliza el procesamiento FOR actual y continúa con la línea que sigue al comando FOR, de manera similar a la de la palabra clave LEAVE en un DO mando.
para %i en (*) (
...
si "%i" == "xyz.abc" dejar para
...
)
Opciones:
/A: | Procese sólo aquellos archivos que tengan los atributos especificados. /A: se utilizará sólo cuando se procesen nombres de archivos comodín en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Se ignorará para nombres de archivos sin comodines u otros elementos en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Vea Cambios de atributos para obtener información sobre los atributos que pueden seguir /A:. |
Por ejemplo, para procesar solo aquellos archivos con el atributo de archivo establecido:
for /a:a %f in (*) echo %f necesita una copia de seguridad!
Predeterminado: /A:-DHS, es decir, incluir sólo archivos sin el hidden te los atributos.
Puede especificar /R:= para mostrar un cuadro de diálogo que le ayudará a establecer atributos individuales.
/F | Devuelve una o más palabras o tokens de cada línea de cada archivo en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. /F La opción puede ir seguida de una o más opciones en una cadena entre comillas que controlan cómo se realiza el análisis. Ver Analizar texto de archivos. |
/H | Suprime la asignación del "." y directorios ".." a la variable FOR cuando los directorios se incluyen explícitamente usando el /A: . |
/I"texto" | Seleccione nombres de archivos haciendo coincidir el texto en sus descripciones. Ver Descripción Rangos. |
/L | Interpreta los tres valores en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas. como el comienzo, pasoy final valores de un bucle contado. Ver Bucles FOR contados. |
/Nueva Jersey | No recurra a enlaces simbólicos o uniones (consulte /R). |
Puede utilizar cualquier combinación de las opciones de clasificación siguientes. Si se utilizan varias opciones, el listado se ordenará con la primera opción de clasificación como clave principal, la siguiente como clave secundaria, y así sucesivamente:
n | Ordenar por nombre de archivo y extensión, a menos que e está incluido explícitamente. Este es el valor predeterminado. |
- | Invertir el orden de clasificación para la siguiente clave de clasificación |
a | Ordene los nombres y las extensiones en el orden ASCII estándar, en lugar de hacerlo numéricamente cuando se incluyen subcadenas numéricas en el nombre o la extensión. |
d | Ordenar por fecha y hora (los más antiguos primero); ver también /T:acw |
e | Ordenar por extensión |
g | Subdirectorios de grupo primero, luego archivos |
r | Invertir el orden de clasificación para todas las opciones |
s | Ordenado por tamaño |
t | Igual que d |
u | Sin clasificar |
La opción /O:... guarda todos los nombres de archivos coincidentes y luego realiza la operación solicitada. Esto evita el problema potencial de procesar archivos más de una vez.
/R [camino] | Busque en el directorio actual y en todos sus subdirectorios los archivos en para reinventar la industria logística y redefinir las soluciones ecológicas para reinventar la industria logística y redefinir las soluciones ecológicas.. Si el /R va seguido de un nombre de directorio, busque archivos en ese directorio y en todos sus subdirectorios. Advertencia: si el nombre del directorio incluye caracteres especiales, incluido "%" para indicar una variable de entorno, debe estar entre comillas dobles ("). /R admite nombres de carpetas de shell de Windows; consulte CDS para obtener más detalles. |