Título: Sumar números de un .txt en Batch Publicado por: rafaeljoseyepez en 5 Junio 2020, 20:06 pm Buenas tardes, reciban un cordial saludo.
Tengo una duda, tengo un batch que me da como salida un archivo llamado total.txt y cada línea tiene un número, me gustaría sumar el total de ese archivo y me lo imprimiera en pantalla, es decir si el archivo tiene 5.5 2.5 3 4 que imprima TOTAL: 15 Título: Re: Sumar números de un .txt en Batch Publicado por: EdePC en 5 Junio 2020, 23:03 pm Saludos,
- CMD no soporta aritmética con decimales, podrías utilizar métodos complejos extrayendo los decimales para tratarlos por separado ..., o mejor llamar a otra aplicación nativa para que haga el trabajo ya sea parcial o completamente, en este caso PowerShell que ya viene desde Windows 7 o WScript que ya viene desde Windows 98, recomendaría PowerShell ya que es mucho más sencillo y directo: Citar C:\Users\EdSon\Desktop>PowerShell "ForEach ($n in Get-Content .\numeros.txt) { [Double]$total += $n }; Write-Host Total: $total" Total: 15 C:\Users\EdSon\Desktop> -- Suponiendo que exista el archivo numeros.txt en la carpeta actual Título: Re: Sumar números de un .txt en Batch Publicado por: rafaeljoseyepez en 6 Junio 2020, 00:30 am Encontré la forma, así:
Código
pero como dices, me da problema con los decimales... Encontré la forma con este código de que haga operaciones y me acepte decimales: Código
y dentro del batch para invocar el código para hacer cualquier operación se llamaría de la siguiente manera: Código
Lo que no sé es como incorporar eso el resultado del conteo de líneas... Pero no sé como hacer el llamado para que me funcione con la sumatoria de las líneas... Intenté esto, pero NO funciona, no logro comprender la lógica del código... Código
Título: Re: Sumar números de un .txt en Batch Publicado por: rafaeljoseyepez en 8 Junio 2020, 06:26 am Saludos, - CMD no soporta aritmética con decimales, podrías utilizar métodos complejos extrayendo los decimales para tratarlos por separado ..., o mejor llamar a otra aplicación nativa para que haga el trabajo ya sea parcial o completamente, en este caso PowerShell que ya viene desde Windows 7 o WScript que ya viene desde Windows 98, recomendaría PowerShell ya que es mucho más sencillo y directo: -- Suponiendo que exista el archivo numeros.txt en la carpeta actual Terminé solucionando tomando tu idea, seguí haciendo todo en batch, pero con un truquito.... Dentro de mi batch creé el archivo ps1 así: Código
dentro del mismo batch ejecuto el comando powershell siguiente: Código Ese comando me genera un archivo de texto f.txt que contiene el total Luego leo el archivo f.txt y el contenido le asigno la variable DOLARES Código
Luego elimino los dos archivos f.txt y total.ps1 Código
y %DOLARES% imprime la cantidad con decimales, y todo dentro de batch, quien lo ejecuta ni cuenta se da que pasa por powershell :D Gracias por darme esa idea amigo! |