es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  , ,

Answer

  1. Avatar for 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:

    @echo off
    
    setlocal enabledelayedexpansion
    
    set num_files=3
    set num_rows=3
    set sum_files=0
    
    for /l %%f in (1, 1, %num_files%) do (
      set sum_rows=0
      for /l %%r in (1, 1, %num_rows%) do (
        set /p num=<file%%f.txt
        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 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.txt
    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 pregunta.>

Comments are closed.