首页 > 解决方案 > MSG.EXE 配置

问题描述

我有一个脚本可以备份来自 pc 的所有数据。我添加了以下消息:

msg * "Copying Desktop" 

但发生的事情是在 1 分钟后,它消失了。我需要的是让它保持打开状态,直到过程结束,我让下一个框显示一条消息。

此外,当新消息发布时,它会落后于旧消息。

这个过程是被杀死还是被提出来?

标签: batch-filemessagepopupwindowscript

解决方案


如果 PC 使用的是单用户模式,您可以使用其他机制来调用弹出消息:VBscript、PowerShell 等。

对于批处理文件,我batch-file根据mshta.exe使用情况给出下一个代码。这个嵌入式实用程序执行 Javascript 和 VBscript 代码。

REM call popup box message
@start  mshta javascript:alert("Message\n\Copyng_desktop");close();


REM Find message process Id
for /f "tokens=2,* skip=3" %%a in ('tasklist /fi "imagename eq mshta.exe"') do set "id=%%a"


REM Check for Id nul-value
if "%id%"=="" goto :EOF


REM Bring message box to the front
mshta vbscript:execute("CreateObject(""WScript.Shell"").AppActivate %id%")(window.close)


REM THIS SHOULD BE COPY-ROUTINE CALL
REM copy .....

REM Close message box
taskkill /f /PID %id%

PS如果mshta.exe一次可能存在多个过程,则有解决方案。用此代码的命令替换前 2 行:

for /f "delims== tokens=2* usebackq" %%a in (`wmic process call create "mshta javascript:alert('Message\n\Copyng_file!');close();" ^|find "ProcessId"`) do set "id=%%a"

set id=%id:;=%

推荐阅读