如何建立免费微网站,建立公司网站的好处,外贸公司倒闭的多吗,苏州网站设计制作文章目录 一、背景二、测试数据三、隐藏bat运行窗口方案1. 使用VBScript脚本2. 使用mshta调用js或vbs脚本3. 将bat编译为exe程序4. 使用任务计划程序 一、背景
有些程序在执行批处理脚本时#xff0c;可能会看到dos窗口#xff0c;或者看到窗口一闪而过。如果批处理脚本执行… 文章目录 一、背景二、测试数据三、隐藏bat运行窗口方案1. 使用VBScript脚本2. 使用mshta调用js或vbs脚本3. 将bat编译为exe程序4. 使用任务计划程序 一、背景
有些程序在执行批处理脚本时可能会看到dos窗口或者看到窗口一闪而过。如果批处理脚本执行过程中不需要与用户进行交互那么为了提升用户体验防止用户误操作关闭了正在运行的批处理dos窗口而导致的一些问题建议将批处理放到后台隐藏运行。 接下来讲总结下都有哪些方式可以隐藏bat运行时的窗口。这里不讨论将窗口最小化
二、测试数据
为了验证bat批处理确实在后台运行而没有在dos窗口运行使用如下test.bat测试脚本
echo off
echo [%time%]: batch is running.
ping -n 11 127.0.0.1 run_res.txt如果批处理没有在后台运行你将看到dos窗口停留大概10秒的时间你可以通过生成的 run_res.txt 文件进行判断 dos窗口是否在后台成功运行
三、隐藏bat运行窗口方案
1. 使用VBScript脚本
可以编写一个VBScript脚本文件例如hiderun.vbs然后使用该脚本来运行.bat文件。在VBScript中可以使用Shell对象的Run方法来运行.bat文件并设置窗口风格为不显示。
Set objShell WScript.CreateObject(WScript.Shell)
objShell.Run %comspec% /c test.bat, 0%comspec% 为系统环境变量其值就是cmd.exe程序绝对路径。 然后通过双击hiderun.vbs或在其他程序中运行这个vbs脚本然后test.bat就在后台运行了不会闪一下窗口。
你也可以在另一个bat批处理中调用hiderun.vbs调用方式如下但是运行这个bat批处理会闪一下
echo f
::cscript解释器
cscript HideRun.vbs //nologo
::wscript解释器
wscript HideRun.vbs //nologo2. 使用mshta调用js或vbs脚本
可以在原bat批处理中直接通过mshta调用js或vbs脚本修改test.bat具体如下
echo off
if %1h goto begin
start mshta vbscript:createobject(wscript.shell).run(%~nx0^ h,0)^(window.close) exit
::start mshta javascript:new ActiveXObject(WScript.Shell).Run(%~nx0 h,0);window.close(); exit
:begin
::以下为正常批处理命令不可含有pause set/p等交互命令
echo [%time%]: batch is running.
ping -n 10 127.0.0.1 run_res.txt%0代表当前运行的批处理文件名%~nx0表示将%0扩展到文件名和扩展名即当前运行的批处理的绝对路径。关于Wscript.Shell 对象的更多说明请参考Wscript.Shell 对象详细介绍
需要注意的是这种方式运行bat批处理会闪一下。
3. 将bat编译为exe程序
使用第三方工具将.bat文件转换为.exe可执行程序文件例如使用Bat To Exe Converter工具下载地址https://soft.3dmgame.com/down/202761.html 没使用官网的你懂的 下载解压后点击Bat_To_Exe_Converter.exe打开直接使用
注意选项-exe格式设置为32位或64位隐形然后再转换为xxx.exe文件即可。 然后通过双击生成的xxx.exe程序或在其他程序中运行这个exe程序即可实现在后台运行的效果。 这种方式运行时不会删一下完全在后台运行。
4. 使用任务计划程序
创建一个定时任务怎么创建我就不细讲了。其中有两点需要强调下 1任务的操作设置中程序或脚本填写需要运行的test.bat批处理全路径添加参数、起始于按需填写 2任务的常规-安全选项中一定要选择不管用户是否登录都要运行任务执行bat批处理时才能在后台运行。如果选择只有在用户登录时选项则还是会弹出dos窗口我也不明白这是为啥我的操作系统是Win10
总结
方案1内置的VBScript使用简单方案2运行bat时会闪一下其他方案都没这个问题方案3需要下载第三方工具将bat转换为exe再执行方案4定时任务是比较常用的方式尤其适用于需要定期执行的任务 参考资料 运行bat时隐藏cmd窗口 Wscript.Shell 对象详细介绍