Estoy creando secuencias de comandos por lotes para diversos fines y quiero que después de completar un comando, se muestre un cuadro de diálogo de mensaje que declare los resultados.
Por ejemplo, si hago que un script elimine un objeto específico, me gustaría que muestre un cuadro de diálogo definido por el usuario. Preferiría usar este formato para el título de la ventana y los valores de texto:
x=msgbox("%MESSAGE%" ,0, "%TITLE%")
¿Cómo puedo agregar esto (arriba) a mi script para que se muestre?después¿La tarea (a continuación) está completa?
rmdir "%TARGETPATH%
Respuesta1
Puedes usar el comandoredireccióncon &&
o &
para ejecutar un comando de procedimiento después de que se complete el primer comando. Puede configurarlo para que ejecute el comando siguiente después de que el primer comando haya sido exitoso, o directamente después de que se ejecute el primer comando, independientemente del resultado del primer comando.
El truco consiste en hacer que el script por lotes ponga el VBmensajeBoxfunción y los valores aplicables que utiliza en un script temporal que luego se ejecutará a través dewscript.
Todo esto debería funcionar de inmediato sin instalar ninguna herramienta de terceros, por lo que esventanasnativo.
Guión por lotes
Nota: Necesitará usar la sintaxis de SET x=msgbox "%TITLE%",0,"%MESSAGE%"
en lugar de la que tiene para que esto funcione, pero eso es sólo un ajuste menor.
@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
commandA & commandB Run commandA and then run commandB commandA && commandB Run commandA, if it succeeds then run commandB