有些时候我们开发需要固定启动某些程序,每次电脑开机都需要一次一次的点
现在只需要写一个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