Script por lotes para calcular la suma de enteros de cada fila en múltiples archivos de texto: “`batch @echo off setlocal enabledelayedexpansion set “result=0” for %%f in (*.txt) do ( for /f %%i in (%%f) do ( set /a result=!result!+%%i ) ) echo La suma de enteros de todas las filas en los archivos de texto es: %result% endlocal “` Este script calculará la suma de los enteros de cada fila en todos los archivos de texto presentes en el directorio. El resultado se mostrará al final de la ejecución.
Tengo varios archivos de texto que contienen enteros en cada fila. ¿Puedo hacer un bucle for /f para calcular (sumar) desde cada fila de cada archivo secuencialmente?
Digamos que los archivos de texto son así:
Archivo1.txt
123
213
321
Archivo2.txt
111
222
333
Archivo3.txt
333
222
111
¿Es posible recorrer el contenido de varios archivos y sumar las filas correspondientes, es decir:
– fila1 del archivo1 + fila1 del archivo2 + fila1 del archivo3
– fila2 del archivo1 + fila2 del archivo2 + fila2 del archivo3
– fila3 del archivo1 + fila3 del archivo2 + fila3 del archivo3
:: la operación para la primera fila de cada archivo debería ser:
Set /A calc=123+111+333
echo !calc!
Después de buscar en Google, no pude encontrar ninguna solución similar a mi problema.
Agradecería si alguien puede brindar información sobre esto.
Gracias
davy.ai
Sí, es posible iterar sobre el contenido de varios archivos y sumar las filas correspondientes. Puedes lograr esto utilizando un script por lotes con un bucle anidado. El bucle exterior itera sobre los archivos, y el bucle interior itera sobre las filas de cada archivo. Aquí tienes un ejemplo de script:
en este script, las variables
num_files
ynum_rows
se establecen en el número de archivos y filas, respectivamente. puedes cambiar estos valores según el tamaño real de tus archivos. la variablesum_files
se utiliza para llevar un registro de la suma total en todos los archivos.el bucle exterior utiliza el comando
for /l
para iterar sobre los números de archivo (%%f
), y el bucle interior itera sobre los números de fila (%%r
). el comandoset /p
lee el valor entero de la fila correspondiente en el archivo actual (file%%f.txt
). el comandoset /a
añade el valor entero a la variablesum_rows
.después de que el bucle interior se complete para cada archivo, la variable
sum_rows
contiene la suma de las filas similares en ese archivo. la variablesum_files
se actualiza sumandosum_rows
a ella. el comandoecho
muestra el valor desum_rows
para cada archivo.finalmente, fuera de los bucles, el comando
echo
muestra el valor desum_files
, que es la suma total de las filas similares en todos los archivos.¡espero que esto sea de ayuda! avísame si tienes alguna pregunta. set=”” a=”” sum_rows+=”num” )=”” set=”” a=”” sum_files+=”sum_rows” echo=”” suma=”” de=”” filas=”” en=”” file%%f.txt:=”” !sum_rows!=”” )=”” echo=”” suma=”” total=”” de=”” filas=”” similares:=”” %sum_files%=”” “`=”” en=”” este=”” script,=”” las=”” variables=””
num_files
=”” y=””num_rows
=”” se=”” establecen=”” en=”” el=”” número=”” de=”” archivos=”” y=”” filas,=”” respectivamente.=”” puedes=”” cambiar=”” estos=”” valores=”” según=”” el=”” tamaño=”” real=”” de=”” tus=”” archivos.=”” la=”” variable=””sum_files
=”” se=”” utiliza=”” para=”” llevar=”” un=”” registro=”” de=”” la=”” suma=”” total=”” en=”” todos=”” los=”” archivos.=”” el=”” bucle=”” exterior=”” utiliza=”” el=”” comando=””for="" l
=”” para=”” iterar=”” sobre=”” los=”” números=”” de=”” archivo=”” (%%f
),=”” y=”” el=”” bucle=”” interior=”” itera=”” sobre=”” los=”” números=”” de=”” fila=”” (%%r
).=”” el=”” comando=””set="" p
=”” lee=”” el=”” valor=”” entero=”” de=”” la=”” fila=”” correspondiente=”” en=”” el=”” archivo=”” actual=”” (file%%f.txt
).=”” el=”” comando=””set="" a
=”” añade=”” el=”” valor=”” entero=”” a=”” la=”” variable=””sum_rows
.=”” después=”” de=”” que=”” el=”” bucle=”” interior=”” se=”” complete=”” para=”” cada=”” archivo,=”” la=”” variable=””sum_rows
=”” contiene=”” la=”” suma=”” de=”” las=”” filas=”” similares=”” en=”” ese=”” archivo.=”” la=”” variable=””sum_files
=”” se=”” actualiza=”” sumando=””sum_rows
=”” a=”” ella.=”” el=”” comando=””echo
=”” muestra=”” el=”” valor=”” de=””sum_rows
=”” para=”” cada=”” archivo.=”” finalmente,=”” fuera=”” de=”” los=”” bucles,=”” el=”” comando=””echo
=”” muestra=”” el=”” valor=”” de=””sum_files
,=”” que=”” es=”” la=”” suma=”” total=”” de=”” las=”” filas=”” similares=”” en=”” todos=”” los=”” archivos.=”” ¡espero=”” que=”” esto=”” sea=”” de=”” ayuda!=”” avísame=”” si=”” tienes=”” alguna=””></file%%f.txtset /a sum_rows+=num
)
set /a sum_files+=sum_rows
echo suma de filas en file%%f.txt: !sum_rows!
)
echo suma total de filas similares: %sum_files%
“`
en este script, las variables
num_files
ynum_rows
se establecen en el número de archivos y filas, respectivamente. puedes cambiar estos valores según el tamaño real de tus archivos. la variablesum_files
se utiliza para llevar un registro de la suma total en todos los archivos.el bucle exterior utiliza el comando
for /l
para iterar sobre los números de archivo (%%f
), y el bucle interior itera sobre los números de fila (%%r
). el comandoset /p
lee el valor entero de la fila correspondiente en el archivo actual (file%%f.txt
). el comandoset /a
añade el valor entero a la variablesum_rows
.después de que el bucle interior se complete para cada archivo, la variable
sum_rows
contiene la suma de las filas similares en ese archivo. la variablesum_files
se actualiza sumandosum_rows
a ella. el comandoecho
muestra el valor desum_rows
para cada archivo.finalmente, fuera de los bucles, el comando
echo
muestra el valor desum_files
, que es la suma total de las filas similares en todos los archivos.¡espero que esto sea de ayuda! avísame si tienes alguna pregunta.>