Shura16 0 Report post Posted April 2, 2015 Olá pessoal. Gostaria de ajuda dos colegas para converter um programa feito inicialmente em bat. Para melhorar um pouco usei Javascript e HTA para criar uma interface gráfica. Estava pensando em usar python e depois usar o py2exe para transformá-lo em um executável. Inicialmente pode ser em modo texto mesmo, mas posteriormente penso em implementar uma interface gráfica. O script é um utilitário de banco de dados que chama executáveis fornecidos pelo SGBD para a realização de reparação em bancos com problemas. O SGBD em questão é o Firebird. Gostaria de saber onde posso começar a estudar para poder implementar tal software, pois não seria justo o pessoal fazer para mim e eu também não aprenderia. Seguem os scripts: backup.bat @echo off if %2 == -s ( @echo on @echo *** mostrando os detalhes ) else ( @echo *** ocultando os detalhes @echo off ) @echo *** @echo *** Copiando banco de Dados @echo *** copy %1.FDB %1.COP /z @if errorlevel = 1 goto errocopia @goto continua :continua gfix -shut -force 0 %1.COP -User usuario -Password senha @if errorlevel = 1 goto continua @goto continua :continua gfix -online normal %1.COP -User usuario -Password senha gfix -v -f %1.COP -User usuario -Password senha @if errorlevel = 1 goto erro gfix -m -i %1.COP -User usuario -Password senha @if errorlevel = 1 goto erro gbak -g -b -z -v %1.COP %1.FBK -User usuario -Password senha @if errorlevel = 1 goto erro echo *** echo *** banco de Dados Copiado!!! echo *** goto fim :erro echo *** echo *** ERRO AO TENTAR COPIAR O banco DE DADOS echo *** :errocopia echo *** echo *** ERRO AO TENTAR COPIAR O ARQUIVO echo *** :fim PAUSE Minhas dúvidas aqui seriam como tratar esses @if errorlevel, como executar os comandos copy (comando do Windows), gfix e gbak (executáveis que eu tenho) e como capturar sua saída e como receber parâmetros. O echo é só substituir pelo print. Estava pensando em fazer métodos e trabalhar chamando-os pois não quero usar goto (nem sei se o python tem isso). No futuro gostaria de implementar uma interface gráfica, gostaria de sugestões de estudo para isso. Agradeço desde já. Share this post Link to post Share on other sites
_Isis_ 202 Report post Posted April 2, 2015 Você pode utilizar o módulo subprocess p/ executar os comandos:https://pythonadventures.wordpress.com/2013/03/03/execute-command-show-its-output-get-its-exit-code/Quanto aos erros, eu colocaria um if dentro de um try-catch: try: processo = subprocess.Popen(shlex.split("copy banco.FDB banco.COP /z"), stdout=PIPE) processo=communicate() exit_code= processo.wait() if exit_code: raise Exception("Erro ao copiar banco") catch Exception e: print e.message Procure por Dive Into Python se quiser ler online. De livro eu conheço o Learning Python e o Programming Python. Share this post Link to post Share on other sites
Shura16 0 Report post Posted April 2, 2015 Agradeço, teria alguma GUI sugerida?Já ouvi falar que python é compatível com GTK, também ouvi falar sobre o Tkinter e o wxPython.O que diria sobre estes?--------------- EDIT -------------------Testando o programa solicitado, ele só cai na opção da Exception. Obs.: no lugar de catch usei except e não é possível definir o nome da exception. def teste(): print("Executando o utilitário Python") cmd = "copy teste.txt teste.cop /z" print(cmd) try: process = Popen(shlex.split(cmd), stdout=PIPE) process.communicate() exit_code = process.wait() if exit_code: raise Exception("Erro ao copiar banco.") except Exception: print("O comando não pode ser executado") teste() Share this post Link to post Share on other sites
_Isis_ 202 Report post Posted April 2, 2015 kkkk Nem vi que escrevi errado. To fuçando em Java por aqui também, aí mistura tudo às vezes.https://docs.python.org/2/tutorial/errors.htmltry:....except Exception as e: ....Nunca trabalhei com GUI em Python. Share this post Link to post Share on other sites