Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: rafaeljoseyepez en 21 Junio 2020, 20:46 pm



Título: Ayuda de powershell para operaciones dentro de Batch
Publicado por: rafaeljoseyepez en 21 Junio 2020, 20:46 pm
Saludos muchachos!!

Quería preguntarle, ya que batch está muy limitado en cuanto a las operaciones matemáticas, que número de muchos dígitos es imposible de multiplicar, pero tenemos la opción de powershell que podemos insertar dentro del mismo batch, quería ver sus ejemplos de como hacerlo, por ejemplo...

Set /A VariableFinal= 4896410320 * 15030

¿Cómo harían para con ayuda de powershell establecer el resultado de esa variable?
Me refiero dentro del mismo batch, se me ocurre la idea de hacer la operación dentro del mismo powershell, imprimir el resultado en un archivo de texto, y que batch establezca la variable desde el archivo de texto, no sé si alguien tiene una mejor idea y puede dar los ejemplos por acá


Título: Re: Ayuda de powershell para operaciones dentro de Batch
Publicado por: EdePC en 22 Junio 2020, 02:51 am
Saludos,

- Batch está limitado a operar números enteros desde -2,147,483,648 hasta 2,147,483,647 de hecho ya es un número bastante grande, sin embargo siempre se puede usar VBScript o PowerShell para operar números realmente grandes.

- Solo recordar que esta limitación es para las operaciones matemáticas entre variables, pero si que se puede guardar números enormes en una variable común.

- Realizar una invocación simple de PowerShell es hoy en día la manera más simple de realizar esa tarea, basta con hacer:

Código
  1. PowerShell 4896410320 * 15030

-- Claro que se puede redireccionar la salida hacia otro comando o archivo, un ejemplo de cada uno:

Código
  1. PowerShell 4896410320 * 15030 | Clip
  2. PowerShell 4896410320 * 15030 > resultado.txt

-- Si has elegido utilizar un archivo, pues lo lees así:

Código
  1. PowerShell 4896410320 * 15030 > resultado.txt
  2. Set /P rpta=<resultado.txt
  3. Echo %rpta%

-- Si eliges redirigir la salida de un comando a una variable, siempre se puede utilizar For /F así:

Código
  1. For /F %%a In ('PowerShell 4896410320 * 15030') Do Set producto=%%a
  2. Echo %producto%