Windows bat隐藏运行窗口的几种方案

文章目录

  • 一、背景
  • 二、测试数据
  • 三、隐藏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 //nologo

2. 使用mshta调用jsvbs脚本

可以在原bat批处理中直接通过mshta调用jsvbs脚本,修改test.bat具体如下:

@echo off
if "%1"=="h" 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,打开直接使用
bat to exe

注意:选项-exe格式设置为32位或64位隐形,然后再转换为xxx.exe文件即可。
然后通过双击生成的xxx.exe程序(或在其他程序中运行这个exe程序)即可实现在后台运行的效果。
​这种方式运行时不会删一下,完全在后台运行。

4. 使用任务计划程序

创建一个定时任务,怎么创建我就不细讲了。其中有两点需要强调下
1)任务的操作设置中程序或脚本填写需要运行的test.bat批处理全路径,添加参数起始于按需填写;
2)任务的常规-安全选项中,一定要选择不管用户是否登录都要运行,任务执行bat批处理时才能在后台运行。(如果选择只有在用户登录时选项,则还是会弹出dos窗口,我也不明白这是为啥,我的操作系统是Win10)
不管用户是否登录都要运行

总结:

  1. 方案1,内置的VBScript,使用简单
  2. 方案2,运行bat时会闪一下,其他方案都没这个问题
  3. 方案3,需要下载第三方工具,将bat转换为exe再执行
  4. 方案4,定时任务是比较常用的方式,尤其适用于需要定期执行的任务


参考资料:
运行bat时隐藏cmd窗口
Wscript.Shell 对象详细介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(EMQX)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到EMQX

1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡,天线 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内(注意不要弄错方向) 同时接入天线 2.2 连接ST-Link仿真…

Python 算法基础篇:大O符号表示法和常见时间复杂度分析

Python 算法基础篇:大 O 符号表示法和常见时间复杂度分析 引言 1. 大 O 符号表示法 a ) 大 O 符号的定义 b ) 示例代码 2. 常见时间复杂度分析总结 引言 在分析和比较算法的性能时,时间复杂度是一项重要的指标。而大 O 符号表示法是用来描述算法时间复杂…

动态规划01背包之416分割等和子集(第10道)

题目: 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例: 解法: 先复习一下01背包问题: dp[i][j]的含义:从下标为[0-i]的物品里…

Linux->初识计算机网络

目录 前言: 1 网络发展背景 2 协议 2.1 网络协议初识 2.2 协议分层 2.3 OSI、TCP/IP层状模型 2.4 协议和操作系统的关系 2.5 根据协议栈的通信 3 网络中的地址管理 前言: 本篇当中没有任何关于网络编程的讲解,全部是对网络的宏观理解…

【数学建模】 灰色预测模型

数学建模——预测模型简介 https://www.cnblogs.com/somedayLi/p/9542835.html 灰色预测模型 https://blog.csdn.net/qq_39798423/article/details/89283000?ops_request_misc&request_id&biz_id102&utm_term%E7%81%B0%E8%89%B2%E9%A2%84%E6%B5%8B%E6%A8%…

MySQL 进阶之王,MySql 性能实战源码 + 笔记 + 项目实战

随着互联网时代的兴起,MySQL 在数据库领域日益显现出举足轻重的地位,它不断扩大的用户群体就是很好的证明。在这样的背景下,需要越来越多的人在知识资源方面为之付出,将自己对 MySQL 数据库的学习过程、运维经验、个人理解等记录下…

scripy其他

持久化 # 爬回来,解析完了,想存储,有两种方案 ## 方案一:一般不用 parse必须有return值,必须是列表套字典形式--->使用命令,可以保存到json格式中,csv中scrapy crawl cnblogs -o cnbogs.j…

Web3 开发指南:使用 NFTScan NFT API 构建一个 NFT 链上追踪器

对于大多数 Web3 团队来说,构建一个完整的链上 NFT 数据追踪系统是一项具有挑战性的任务,构建一个 NFT 链上追踪器更是如此。涉及到处理区块链上的智能合约和交易数据,并将其与外部数据源进行整合和分析工作量是十分巨大的: 区块链…

RocketMQ学习笔记(实操篇)

目录 基本操作 启动 测试 双主双从集群搭建 总体架构 工作流程 服务器环境 Host添加信息 防火墙配置 环境变量配置 创建消息存储路径 broker配置文件 修改启动脚本文件 服务启动 查看进程状态 查看日志 mqadmin管理工具 使用方式 命令介绍 集群监控平台搭…

基于深度学习的高精度刀具检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度刀具检测识别系统可用于日常生活中或野外来检测与定位刀具目标,利用深度学习算法可实现图片、视频、摄像头等方式的刀具目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

谈谈——互联网生活中的隐私保护

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

图形编辑器开发:参考线吸附功能,让图形自动对齐

最近我给图形编辑器增加了参照线吸附功能,讲讲我的实现思路。 我正在开发的图形设计工具: https://github.com/F-star/suika 线上体验: https://blog.fstars.wang/app/suika/ 效果是被移动的图形会参考周围图形,自动与它们进行吸附…

MySQl数据库第八课-------SQL命令查询-------主要命脉

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 查询数据 条件 逻辑运算符 模糊查询 范围查询 in 判断空 UNION 排序 聚合 分组:group by —————————…

c++计算贝塞尔曲线(折线平滑为曲线)坐标方法

效果可查看上一篇博文&#xff1a;js手动画平滑曲线&#xff0c;贝塞尔曲线拟合【代码】js手动画平滑曲线&#xff0c;贝塞尔曲线拟合。https://blog.csdn.net/qiufeng_xinqing/article/details/131711963?spm1001.2014.3001.5502 代码如下&#xff1a; #include <cmath&…

FPGA实验三:状态机的设计

目录 一、实验目的 二、实验要求 三、实验代码 1.design source文件部分代码 2.测试文件代码 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 &#xff08;1&#xff09;设计好序列检测器 &#xff08;2&#xff09;仿真波形&#xff08;检测11010&#xff09; 3…

【网络系统集成】路由器实验

1.实验名称:路由器RIP协议配置 2.实验目的 在PacketTracer中进行模拟实验,配置RIP协议,验证RIP协议更新时间及路由状态变化,加深对路由器RIP协议相关知识的理解与掌握。 3.实验内容 (1)拓扑结构图 (2)ip地址分配与端口分配

linux - bc 命令安装

一.引言 迁移新机器后发现没有 bc 命令&#xff0c;之前 shell 脚本的一些计算逻辑会出错&#xff0c;下面快速安装一下。 二.安装 bc 请确保在 root 权限下执行该命令&#xff1a; sudo yum install bc 出现下述界面即安装成功&#xff1a; 三.测试 bc 测试下脚本里 % 的…

快速小巧的粘贴应用程序Hasty Paste

什么是 Hasty Paste? Hasty Paste 是一个快速粘贴文本并共享的地方&#xff0c;主要用于共享调试日志等&#xff0c;以帮助开发人员提供技术支持。该项目的目标是既快又小。 命令行安装 在群晖上以 Docker 方式安装。 官方的镜像没有发布在 docker hub&#xff0c;而是在 gh…

尚医通04:Axios Node Npm bable webpack+前端工程改造

目录 本日学习 内容介绍 Axios Node NPM包管理器 Babel 模块化 Webpack 搭建前端工程 前端框架介绍 前端开发过程介绍 登录改造成本地接口 本日学习 1. 了解Axios :他是异步请求用的&#xff0c;前后端。 用于在浏览器和 Node.js 中发送 HTTP 请求。它支持从服务器…