batch-file - MSG.EXE 配置
问题描述
我有一个脚本可以备份来自 pc 的所有数据。我添加了以下消息:
msg * "Copying Desktop"
但发生的事情是在 1 分钟后,它消失了。我需要的是让它保持打开状态,直到过程结束,我让下一个框显示一条消息。
此外,当新消息发布时,它会落后于旧消息。
这个过程是被杀死还是被提出来?
解决方案
如果 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:;=%
推荐阅读
- c++ - 生成网格的逆时针缠绕有什么问题?
- java - Kafka 消费者虽然使用了 MANUAL_IMMEDIATE,但并没有真正承认
- pyspark - AttributeError:模块“pyspark.sql.utils”没有属性“convert_exception”
- c++ - 使用 C++ 和字节序感知写入/读取二进制文件
- swift-package-manager - iOS:使用 Swift 包管理器时测试资源包位置
- visual-studio-code - 是否可以在 VS Code Server 中使用调试和断点?
- python - 将嵌套的 JSON 展平为数据框 Python
- python-3.x - Python:值未正确分配给循环中的键
- mysql - 使用 MAX 函数将 NULL 转换为有意义的值 - mySQL
- java - Log4J2 JDBC Appender 无法写入数据库