Отображать диалоговое окно с сообщением после команды с помощью пакетного скрипта?

Отображать диалоговое окно с сообщением после команды с помощью пакетного скрипта?

Я создаю пакетные скрипты для различных целей и хочу сделать так, чтобы после завершения команды отображалось диалоговое окно с сообщением о результатах.

Например, если я создам скрипт, удаляющий определенный объект, я бы хотел, чтобы он отображал определяемый пользователем диалог. Я бы предпочел использовать этот формат для заголовка окна и текстовых значений:

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

Как мне добавить это (выше) в мой скрипт для отображения?послезадача (ниже) выполнена?

rmdir "%TARGETPATH%

решение1

Вы можете использовать командуперенаправлениес &&или &для выполнения текущей команды после завершения первой команды. Вы можете настроить его на выполнение текущей команды после успешного выполнения первой команды или сразу после выполнения первой команды независимо от результата первой команды.

Хитрость в том, чтобы пакетный скрипт поместил VBmsgBoxфункция и соответствующие значения, которые она использует во временном скрипте, который позже будет выполнен черезwscript.

Все это должно работать «из коробки» без установки каких-либо сторонних инструментов, так что этоОкнародной.


Пакетный скрипт

Примечание: Вам нужно будет использовать синтаксис, SET x=msgbox "%TITLE%",0,"%MESSAGE%"а не тот, что у вас есть, чтобы это работало, но это лишь незначительное изменение.

@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

Дополнительные ресурсы

Связанный контент