batch-file-es Windows

carlos.wilber.franco
from carlos.wilber.franco More from this publisher
08.02.2022 Views

Capítulo 23: Para bucles en archivos porlotesSintaxis• para / l %% p in (startNumber, increment, endNumber) comando do• para / f %% p en (nombre de archivo) comando do• para / f %% p en ("textStrings") do comando• para / f %% p en ('comando') comando do• para / r drive: \ path %% p in (set) do command• para / d %% p en (directorio) comando doObservacionesEl comando for acepta opciones cuando se usa el indicador /f . Aquí hay una lista de opcionesque se pueden usar:• delims=x caracteres delimitadores para separar tokens• skip=n Número de líneas a omitir al principio del archivo y cadenas de texto• eol=; Carácter al inicio de cada línea para indicar un comentario.• tokens=n Elementos numerados para leer de cada línea o cadena para procesar• usebackq usa otro estilo de cita:Use comillas dobles para nombres de archivo largos en "archivos"Utilice comillas simples para 'textStrings'Usa las comillas de vuelta para `command`ExamplesRecorriendo cada línea en un conjunto de archivosLo siguiente hará eco de cada línea en el archivo C:\scripts\testFile.txt . Las líneas en blancono serán procesadas.for /F "tokens=*" %%A in (C:\scripts\testFile.txt) do (echo %%Arem do other stuff here)https://riptutorial.com/es/home 67

Un ejemplo más avanzado muestra cómo se puede usar la derivación en el ciclo FOR de unconjunto restringido de archivos para redirigir la ejecución por lotes, mientras se guarda elcontenido buscado en un archivo:@echo offsetlocal enabledelayedexpansionfor /f %%i in ('dir "%temp%\test*.log" /o:-d /t:w /b') do (set "last=%temp%\%%i"type !last! | find /n /i "Completed" >nul 2>&1 >> %temp%\Completed.log ^&& (echo Found in log %%i & goto :end) || (echo Not found in log %%i & set "result=1")):: add user tasks code hereif defined result echo Performing user tasks...:endecho All tasks completedexit /bTenga en cuenta el tiempo en que las cadenas de comando se dividen en varias líneas de códigoy los grupos de comandos están separados por paréntesisVisitar directorios de forma recursiva en un árbol de directoriosfor /r comando for /r se puede usar para visitar recursivamente todos los directorios en un árbolde directorios y ejecutar un comando.@echo offrem start at the top of the tree to visit and loop though each directoryfor /r %%a in (.) do (rem enter the directorypushd %%aecho In directory:cdrem leave the directorypopd)Notas:• para / r - Recorrer archivos (subcarpetas Recurse).• pushd - Cambie el directorio / carpeta actual y almacene la carpeta / ruta anterior para usarcon el comando POPD.• popd : cambie el directorio de nuevo a la ruta / carpeta almacenada más recientemente porel comando PUSHD.Renombrando todos los archivos en el directorio actualLo siguiente usa una variable con un bucle for para renombrar un grupo de archivos.SetLocal EnableDelayedExpansionfor %%j in (*.*) do (https://riptutorial.com/es/home 68

Capítulo 23: Para bucles en archivos por

lotes

Sintaxis

• para / l %% p in (startNumber, increment, endNumber) comando do

• para / f %% p en (nombre de archivo) comando do

• para / f %% p en ("textStrings") do comando

• para / f %% p en ('comando') comando do

• para / r drive: \ path %% p in (set) do command

• para / d %% p en (directorio) comando do

Observaciones

El comando for acepta opciones cuando se usa el indicador /f . Aquí hay una lista de opciones

que se pueden usar:

• delims=x caracteres delimitadores para separar tokens

• skip=n Número de líneas a omitir al principio del archivo y cadenas de texto

• eol=; Carácter al inicio de cada línea para indicar un comentario.

• tokens=n Elementos numerados para leer de cada línea o cadena para procesar

• usebackq usa otro estilo de cita:

Use comillas dobles para nombres de archivo largos en "archivos"

Utilice comillas simples para 'textStrings'

Usa las comillas de vuelta para `command`

Examples

Recorriendo cada línea en un conjunto de archivos

Lo siguiente hará eco de cada línea en el archivo C:\scripts\testFile.txt . Las líneas en blanco

no serán procesadas.

for /F "tokens=*" %%A in (C:\scripts\testFile.txt) do (

echo %%A

rem do other stuff here

)

https://riptutorial.com/es/home 67

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!