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

 

 







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM