Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Meta en Julio 08, 2020, 05:06:53 PM

Título: [SOLUCIONADO] Adaptar este script a PowerShell
Publicado por: Meta en Julio 08, 2020, 05:06:53 PM
Hola:

Antes que nada.

¿Con Visual studio 2019 Community 2019 se puede usar PowerShell?

A lo que iba.

Quiero adaptar este código de Python 2.7 a PowerShell.

¿Es posible?

Código (python) [Seleccionar]
import os, sys, tkFileDialog,Tkinter
     
root = Tkinter.Tk()
root.withdraw()
     
formats = [ ('Roms Super Nintendo SMC','.smc'),('Roms Super Nintendo SFC','.sfc'),('Fichier Bin','.bin'),('Roms Super Nintendo','.smc .sfc .bin') ]
     
input = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=formats,
                                 title='Seleccione el archivo para intercambiar bin HI a LO como A16->A15, A17->A16...A21->A20 y A15->21')
if not input:
    print "Error: no se puede abrir el archivo."
    sys.exit()
     
output = tkFileDialog.asksaveasfile(parent=root,mode='wb',filetypes=formats,title='Crear nombre de archivo de salida.')
if not output:
    print "Error: no se puede crear el archivo de salida."
    sys.exit()
     
     
    # Leer el archivo de entrada a una matriz de bytes.
    data = bytearray(input.read())
     
    # Calculando el tamaño de la habitación en 2 exponentes.
    expsize = 0
    bytesize = len(data)
    while bytesize > 1:
            expsize += 1
            bytesize = bytesize // 2
     
    # Iniciar una matriz de bytes vacía de tamaño adecuado.
    buffer = bytearray()
    for i in range(2**expsize): buffer.append(0)
     
    # Hagamos el intercambio.
    count = 0
    for i in range(len(data)):
            addr = (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1)
            + ((i & 0x080000) >> 1) + ((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
            if addr != i: count += 1
            buffer[addr] = data[i]
    print "Intercambiadas %s (%s) direcciones" % (count, hex(count))
     
    # Escribir archivo de salida.
    output.write(buffer)
     
    # Cerrar archivos maneja.
    input.close()
    output.close()


Gracias.
Título: Re:Adaptar este script a PowerShell
Publicado por: ??????? en Julio 08, 2020, 06:06:21 PM
Buenas @Meta (https://underc0de.org/foro/index.php?action=profile;u=64233)!

Citar
¿Con Visual studio 2019 Community 2019 se puede usar PowerShell?

Respondiendo a esta pregunta, si se puede. Acá le dejo un link que habla con respecto a ello: https://devblogs.microsoft.com/powershell/powershell-tools-for-visual-studio-now-available/

Y respondiendo a esto:

Citar
Quiero adaptar este código de Python 2.7 a PowerShell.

¿Es posible?

Parte del código básico lo vas a poder adaptar, el problema viene con el módulo TKinter. Pero no creo que sea un problema, ya que Powershell cuenta con formas de crear GUIs. Aunque no le recomendaría mucho usarlo para lo que interfaces respecta, a pesar de que esté desarrollado en C#. Todo esto implica que usando el propio C#, valga la redundancia, pueda obtener un mejor resultado.

De todas formas, acá le dejo unos links de orientación:

https://ridicurious.com/2018/03/30/powershell-scripting-guide-to-python-part1/
https://devblogs.microsoft.com/scripting/create-a-simple-graphical-interface-for-a-powershell-script/

Espero haberle ayudado en algo. Saludos!
-Kirari
Título: Re:Adaptar este script a PowerShell
Publicado por: Meta en Julio 08, 2020, 06:20:05 PM
Gracias por las respuestas.

Si en C# se hace mejor, sea en consola, Windows Form o WPF, me da igual, quiero hacerlo. Como no entiendo la mecánica de Python, pues......