set Vbscript=Msgbox("你的系统即将崩溃,是否立即更新?",1,"系统管理员提醒") for /f "Delims=" %%a in ('MsHta VBScript :Execute ("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(%Vbscript:"=""%)"^)(Close^)') do Set "MsHtaReturnValue=%%a" set ReturnValue1=确定 set ReturnValue2=取消或关闭窗口 echo 你点击了!ReturnValue%MsHtaReturnValue%! if %MsHtaReturnValue% == 1 ( echo 你好世界!终于等到你。 ) else ( echo 再见。 pause

bat本身不具备弹框提示能力,上面的脚本是借助VB脚本的弹框来实现取消和确认的。同理还可以弹出其他形式的框框(参考https://www.w3school.com.cn/vbscript/func_msgbox.asp 这里有Msgbox函数说明)。

转载于:https://www.cnblogs.com/xiongzaiqiren/p/11392842.html

需要在bat脚本里面弹出取消/确认框提示,可以用下面的案例:示例:@echo offsetlocal enabledelayedexpansionset Vbscript=Msgbox("你的系统即将崩溃,是否立即更新?",1,"系统管理员提醒")for /f "Delims=" %%a in ('MsHta VBScript:Execute("CreateO... set Vbscript=Msgbox("是否 确认 继续?",1,"提示消息") for /f "Delims=" %%a in ('MsHta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(%Vbscript:"=""%)"^)(Close^)') do Set "MsHtaReturnValue=%%a" set ReturnValue1=确定 set ReturnValue @echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是 echo off 状态还是 echo on 状态 echo. #输出一个”回车换行”,空白行 #(同echo, echo; echo+ echo[ echo] echo/ echo) 2 errorlevel echo %error %1 %2 ver|find "5.">nul&&goto :Admin mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof :Admin :::切换管
::多种提示框样式自己按需选择 mshta vbscript:msgbox("提示内容1",1,"提示 窗口 1")(window.close) mshta vbscript:msgbox("提示内容2",2,"提示 窗口 2")(window.close) mshta vbscript:msgbox("提示内容3",3,"提示 窗口 3")(window.close) mshta vbscript:msgb