Exibe um diálogo de mensagem após um comando com um script em lote?

4

Estou fazendo scripts em lote para várias finalidades e quero fazer com que, após a conclusão de um comando, seja exibido um diálogo de mensagem que declare os resultados.

Por exemplo, se eu fizer um script excluir um objeto específico, gostaria que ele exibisse uma caixa de diálogo definida pelo usuário. Eu preferiria usar este formato para o título da janela e valores de texto:

x=msgbox("%MESSAGE%" ,0, "%TITLE%")

Como posso adicionar isso (acima) ao meu script para ser exibido depois de a tarefa (abaixo) estar completa?

rmdir "%TARGETPATH%
    
por Mr. Mendelli 01.09.2017 / 01:02

1 resposta

4

Você pode usar o redirecionamento do comando com && ou & para executar um comando de continuação após o primeiro comando conclui. Você pode configurá-lo para executar o comando procedente após o primeiro comando ter sido bem-sucedido ou diretamente após o primeiro comando ser executado, independentemente do resultado do primeiro comando.

O truque é fazer com que o script em lote coloque a função VB msgBox e os valores aplicáveis que ele usa em um script temporário que será executado posteriormente através do wscript .

Isso tudo deve ser feito sem instalar nenhuma ferramenta de terceiros, por isso é o Windows nativo.

Script em lote

Observação: Você precisará usar a sintaxe de SET x=msgbox "%TITLE%",0,"%MESSAGE%" em vez do que você tem para que isso funcione, mas isso é apenas um pequeno ajuste.

@ECHO ON

:Routine1
SET TARGETPATH=C:\Path\Folder
SET COMMAND=rmdir "%TARGETPATH%
SET TITLE=This is my message title
SET MESSAGE=This is my message body
SET tmpmsgbox=%temp%\~tmpmsgbox.vbs
SET x=msgbox "%MESSAGE%",0,"%TITLE%"
ECHO %x%>"%tmpmsgbox%"
%COMMAND% && WSCRIPT "%tmpmsgbox%"
EXIT

Redirection

   commandA &  commandB      Run commandA and then run commandB
   commandA && commandB      Run commandA, if it succeeds then run commandB

Mais recursos

por 01.09.2017 / 02:42