bat脚本批量启动程序
有些时候我们开发需要固定启动某些程序,每次电脑开机都需要一次一次的点
现在只需要写一个bat脚本就可以实现批量一键启动多个应用,把一下内容存储到一个bat文件就好,名字随意
:::: @echo off 表示在此语句后所有运行的命令都不显示命令行本身 @echo on
@echo off
REM 声明采用UTF-8编码 REM命令是注释命令
chcp 65001
SET Obj_Length=5
rem 启动谷歌服务参数
SET Obj[0].path="C:\Users\admin\AppData\Local\Google\Chrome\Application"
SET Obj[0].serverPath="C:\Users\admin\AppData\Local\Google\Chrome\Application\chrome"
SET Obj[0].serverName="chrome"
SET Obj[0].serverTitle="启动chrome"
rem 启动Notepad服务参数
SET Obj[1].path="C:\Program Files\Notepad++"
SET Obj[1].serverPath="C:\Program Files\Notepad++\notepad++"
SET Obj[1].serverName="notepad++"
SET Obj[1].serverTitle="启动notepad++"
rem 启动Navicat服务参数
SET Obj[2].path="C:\soft\Navicat Premium 12"
SET Obj[2].serverPath="C:\soft\Navicat Premium 12\navicat"
SET Obj[2].serverName="navicat"
SET Obj[2].serverTitle="启动navicat"
rem 启动YoudaoNote服务参数
SET Obj[3].path="C:\Program Files (x86)\Youdao\YoudaoNote"
SET Obj[3].serverPath="C:\Program Files (x86)\Youdao\YoudaoNote"
SET Obj[3].serverName="YoudaoNote"
SET Obj[3].serverTitle="启动YoudaoNote"
rem 启动IDEA服务参数
SET Obj[4].path="C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.3\bin"
SET Obj[4].serverPath="C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.3\bin"
SET Obj[4].serverName="idea64"
SET Obj[4].serverTitle="启动idea64"
rem 延时3秒执行
SET delay_time=3
SET Obj_Index=0
set out_server=0
rem 循环便利执行
:LoopStart
IF %Obj_Index% EQU %Obj_Length% GOTO :EOF
SET Obj_Current.path=""
SET Obj_Current.serverPath=""
SET Obj_Current.serverName=""
SET Obj_Current.serverTitle=""
rem 赋值对象里面的参数到 Obj_Current 内
FOR /F "usebackq delims==. tokens=1-3" %%I IN (`SET Obj[%Obj_Index%]`) DO (
SET Obj_Current.%%J=%%K
)
ECHO path = %Obj_Current.path%
ECHO serverPath = %Obj_Current.serverPath%
ECHO serverName = %Obj_Current.serverName%
ECHO serverTitle = %Obj_Current.serverTitle%
rem 延时函数
timeout /t %delay_time%
set /a out_server=0
echo 延时3秒执行
echo 开始---启动%Obj_Current.serverName%服务
tasklist|find /i %Obj_Current.serverName% && set /a out_server=1
echo out_server = %out_server%
if %out_server% == 1 (
echo %Obj_Current.serverName% 服务已启动成功,无需重新启动
)^
else if exist %Obj_Current.serverPath% (
cd %Obj_Current.path%
start %Obj_Current.serverName%
echo 启动 %Obj_Current.serverName% 成功
)^
else (
echo 该文件夹下不存在 %Obj_Current.serverName%
)
SET /A Obj_Index=%Obj_Index% + 1
GOTO LoopStart
REM pause 表示不关闭窗口,如果没有pause 执行完代码就关闭cmd窗口
pause
表示服务数量,如果添加启动程序,这个要记得添加长度
Obj_Length
表示程序在电脑中的安装路径
SET Obj[0].path="C:\Users\admin\AppData\Local\Google\Chrome\Application"
表示程序在电脑中的安装路径
SET Obj[0].serverPath="C:\Users\admin\AppData\Local\Google\Chrome\Application\chrome"
serverName表示电脑软件的exe名称
SET Obj[0].serverName="chrome"
表示启动程序时候的标题,非必填
SET Obj[0].serverTitle="启动chrome"
这些都要是更具电脑中实际软件安装位置来定义的,视情况而定
是不是很方便!!!!!!!!!!!!!!!!!!
此脚本仅供参考,有什么意见或者建议欢迎提问.
因为每个软件的名称不一样,会有很多莫名其妙的事情发生,最好每个软件都单独写一个启动脚本,所以可以这么写
:::: @echo off 表示在此语句后所有运行的命令都不显示命令行本身 @echo on @echo off REM 声明采用UTF-8编码 REM命令是注释命令 chcp 65001 echo 开始---启动谷歌服务 rem 判断服务是否已经启动 set out_server=0 tasklist|find /i "chrome.exe" && set /a out_server=1 echo out_server = %out_server% if %out_server% == 1 ( echo chrome 服务已启动成功,无需重新启动 )^ else if exist C:\Users\admin\AppData\Local\Google\Chrome\Application\chrome.exe ( start C:\Users\admin\AppData\Local\Google\Chrome\Application\chrome.exe http://www.baidu.com echo 启动 chrome 成功 )^ else ( echo 该文件夹下不存在 chrome ) set /a out_server=0 timeout /t 3 echo 延时3秒执行 echo 开始---启动notepad++ 服务 tasklist|find /i "notepad++.exe" && set /a out_server=1 echo out_server = %out_server% if %out_server% == 1 ( echo notepad++ 服务已启动成功,无需重新启动 )^ else if exist "C:\Program Files\Notepad++\notepad++.exe" ( cd C:\Program Files\Notepad++ start notepad++ echo 启动 notepad 成功 )^ else ( echo 该文件夹下不存在 notepad ) set /a out_server=0 timeout /t 3 echo 延时3秒执行 echo 开始---启动Navicat 服务 tasklist|find /i "navicat" && set /a out_server=1 echo out_server = %out_server% if %out_server% == 1 ( echo navicat 服务已启动成功,无需重新启动 )^ else if exist "C:\soft\Navicat Premium 12\navicat.exe" ( cd C:\soft\Navicat Premium 12 start navicat echo 启动 navicat 成功 )^ else ( echo 该文件夹下不存在 navicat ) set /a out_server=0 timeout /t 3 echo 延时3秒执行 echo 开始---启动 YoudaoNote 有道云笔记 服务 tasklist|find /i "YoudaoNote" && set /a out_server=1 echo out_server=%out_server% pause if %out_server% == 1 ( echo YoudaoNote 服务已启动成功,无需重新启动 )^ else if exist C:\Program Files (x86)\Youdao\YoudaoNote ( cd C:\Program Files (x86)\Youdao\YoudaoNote start YoudaoNote echo 启动 YoudaoNote 有道云笔记 成功 )^ else ( echo 该文件夹下不存在 YoudaoNote 有道云笔记 ) set /a out_server=0 timeout /t 3 echo 延时3秒执行 echo 开始---启动IntelliJ 服务 tasklist|find /i "idea64" && set /a out_server=1 echo out_server = %out_server% if %out_server% == 1 ( echo idea64 服务已启动成功,无需重新启动 )^ else if exist C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.3\bin ( cd C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.3\bin start idea64 echo 启动 idea 成功 )^ else ( echo 该文件夹下不存在 idea64 ) REM pause 表示不关闭窗口,如果没有pause 执行完代码就关闭cmd窗口 echo 所有启动成功 ::::exit pause