bat弹出确认或取消窗口

需要在bat脚本里面弹出取消/确认框提示,可以用下面的案例:

示例:

复制代码
@echo off
setlocal enabledelayedexpansion

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函数说明)。

 

2025-03-28 14:00:47【出处】:https://www.cnblogs.com/xiongzaiqiren/p/11392842.html

=======================================================================================

bat文件设置自动关机以及弹框确认

理论上,.bat文件不太好处理一些弹框需求,但是网友是万能的,借助VB脚本的弹框来解决。详情代码:

@echo off
setlocal enabledelayedexpansion
 
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 关机啦!!!
    shutdown -s -t 300
) else (
    echo 取消成功!!!
)
 
pause

这个脚本可以在点击之后触发弹框,点击确定会执行300S延迟后关机。

之后需要在windows系统里加上定时执行该bat的操作,

 选择任务计划程序,然后选择左上角《操作》,点击《创建基本任务》,然后按照要求填写。完美。。

 

2025-03-28 14:01:40【出处】:https://blog.csdn.net/zhanglu_1024/article/details/103436945

=======================================================================================

在cmd命令行中弹出Windows对话框

我用的是第4种方法

  有时候用bat写一些小脚本最后会弹出对话框提示操作成功,可以用mshta.exe来实现,它是Windows系统的相关程序,用来执行.HTA文件,一般计算机上面都有这个程序,实现如下: 

第1种方法        

mshta vbscript:msgbox("我是提示内容",64,"我是提示标题")(window.close)
       

  弹出对话框如下图:        

  如果没有mshta这个程序的话,那么就临时产生一个vbs脚本来实现,完了再删除这个脚本就行了,命令如下:        

第2种方法                

echo msgbox "我是提示内容",64,"我是提示标题">alert.vbs && start alert.vbs && ping -n 2 127.1>nul && del alert.vbs
       

  这样的话效果和上面是相同的        


       

第3种方法                

也可以把下面的脚本 写成一个bat文件  最后一行 pause 应该不要吧

@echo off
msg %username% /
time:10 "你想输入的话(注意空格)"
pause
       


       

::上行数字10为你想让对话框停留的时间(多少秒后关闭)        


       

第4种方法                

下面的内容保存为一个文本 也可以 5秒后关闭,我就是用的这个方法        

echo CreateObject("wscript.shell").popup "5秒钟关闭", 5, "提示" , 64 >alert.vbs && start alert.vbs && ping -n 2 127.1>nul && del alert.vbs        

或者 去掉 64 也可以        

echo CreateObject("wscript.shell").popup "5秒钟关闭", 5, "提示" >alert.vbs && start alert.vbs && ping -n 2 127.1>nul && del alert.vbs         

       

因为 64 表示显示通知消息提示框        

 

 

参考: http://www.cnblogs.com/freeweb/p/5048833.html

 

出处:http://shipingzhong.cn/node-admin/13162

===========

posted on 2025-03-28 14:02  jack_Meng  阅读(1017)  评论(0)    收藏  举报

导航