如何优雅地隐藏批处理(BAT)程序的命令行窗口
如何优雅地隐藏批处理(BAT)程序的命令行窗口
在日常使用批处理(BAT)程序时,我们常常会遇到一个黑乎乎的命令行窗口,这不仅影响美观,而且在关闭窗口时会导致正在运行的程序也被一并关闭。为了解决这个问题,我总结了网上几种有效的方法,下面将逐一介绍。
方法一:利用BAT隐藏窗口的命令
原始代码
1
2
3
4
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
将这段代码放在BAT文件的开头即可实现窗口隐藏。然而,这种方法在设置计划任务时可能会报错。
改进代码
为了避免上述问题,可以尝试以下改进代码:
1
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
这样修改后,计划任务也不会有问题了。
方法二:VBS脚本大法
基本代码
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 批处理程序名", vbhide
亲测有效,可以成功隐藏命令行窗口。
相对路径修改
如果需要使用相对路径,可以对VBS脚本进行如下修改:
Set ws = CreateObject("Wscript.Shell")
getfolder = left(wscript.scriptfullname, instrrev(wscript.scriptfullname, "\") - 1)
ws.run "cmd /c " & getfolder & "批处理程序名", vbhide
这样就可以根据脚本所在目录自动找到批处理程序。
本文由作者按照
CC BY 4.0
进行授权