Альтернатива для команды "msg" в файле .bat для Windows 10 (64 бит) - PullRequest
0 голосов
/ 28 ноября 2018

Я написал небольшой скрипт-таймер в виде .bat-файла, который напоминает мне (16 раз) каждые 30 минут (1800 секунд) во всплывающем окне с сообщением «Move!».Сценарий отлично работает в Windows 7 (32-разрядных) системах, но кажется, что команда «msg» не может быть использована или не существует для 64-разрядных систем.Есть ли альтернатива этой команде или способ ее легкой замены?

set TIMER=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)
set USERS=(%username%)
set MESSAGE=Move!

for %%i in %TIMER% do call :doit

:doit

for %%i in %USERS% do msg %%i %MESSAGE% 

timeout /t 1800 /nobreak
goto:eof

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете создать временный сценарий VBS, запустить его и удалить.

См. Пример MessageBox

В нижней части вашей программы есть:

exit /b
:msg
set tempPath=%temp%\msgbox.vbs
echo msgbox "%message%" > %tempPath% && %tempPath% && del %tempPath%
goto:eof

Затем вы можете использовать его в своем скрипте следующим образом:

set message=Hello World
call:msg

В вашем случае:

set TIMER=(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)
set USERS=(%username%)
set MESSAGE=Move!

for %%i in %TIMER% do call :doit

:doit

set message=%MESSAGE%
call:msg

timeout /t 1800 /nobreak
goto:eof


exit /b
:msg
set tempPath=%temp%\msgbox.vbs
echo msgbox "%message%" > %tempPath% && %tempPath% && del %tempPath%
goto:eof
...