前言
问题背景:需要一个bat脚本来启动安装程序,包括,四个步骤:1.停止正在运行的该程序 2.在注册表查找程序安装路径 3.解析注册表得来的字符串 4.启动程序 附:隐藏黑窗口
一、停止正在运行的程序
一个非常简单的命令 taskkill /f /im xxx.exe 。
二、在注册表查找程序安装路径
本步骤也可以遍历查找文件(实在太慢了),本次采用在注册表获取的方式,几个查找常用的命令:1.reg /? 2.reg query /? 可以获取帮助信息
下面进入操作部分,win+R后输入regedt32,可以调出注册表编辑器界面,找到需要启动的程序的注册表路径,这样后面使用比较快。然后在脚本里加入命令reg query HKEY_LOCAL_MACHINE\SOFTWARE\xxx\xxxx(上步得到的路径) /v varName(需要取的变量名,配合/v使用) /s(循环查找子项) >> D:\1.txt
三、解析字符串
此步骤主要用到两个语句
1.找到包含有需要的路径的行
for /f “delims=” %%x in (‘findstr /i “xxxx.exe” “D:\1.txt”’) do set path=%%x
2.分割行得到值
for /f “tokens=1,2,*” %%a in ("%path%") do (
set str="%%c"
goto STR_VISTOR
)
四、启动程序
到这已经很简单了,直接调用即可
%str% (根据需要加参数)
附录:隐藏窗口
1.在脚本中直接加
@echo off
if “%1” == “h” goto begin
mshta vbscript:createobject(“wscript.shell”).run("""%~nx0"" h",0)(window.close)&&exit
:begin
缺点:黑窗一闪而过
2.新建.vbe,里面写
第二句是vbe获取参数的方式