最近做畢設的時候發現每次都需要輸入命令啓動mongo和redis,還有一些爬蟲和後臺接口。感覺很麻煩,爲什麼不用windows上類似shell的bat語法寫一個部署工具呢?
截圖
注:圖中所用軟件爲醜陋cmd的替換品 cmder
不多多說了,直接上代碼吧,bat語法大家可以自己搜索下。
主進程 start.bat
@echo off
echo 歡迎使用FollowHeart自動化工具,%username% ....
echo 使用之前請確保mongo和redis安裝地址都已經加入到到了系統環境變量裏
ECHO.
:: 公共參數設置 start
If %username% == Andyliwr (
:: 記得改成ANDYLIWRTHS
echo %computername%
If %computername% == ANDYLIWRTHS (
set projectAddr=C:\Users\Andyliwr\Documents\graduationDesign
set mongoDbPath=D:\mongo\data
set mongoLogPath=D:\mongo\log\mongo.log
set mongoConfAddr=D:\mongo\mongod.conf
set redisConfAddr=D:\redis\redis.windows.conf
) Else (
set projectAddr=C:\Users\Andyliwr\Documents\graduationDesign
set mongoDbPath=E:\mongo_install\data
set mongoLogPath=E:\mongo_install\log\mongo.log
set mongoConfAddr=E:\mongo_install\mongod.conf
set redisConfAddr=E:\redis\redis.windows.conf
)
) Else (
If %username% == Greenovia (
set projectAddr=G:\git項目\graduationDesign
set mongoDbPath=F:\mongo\data
set mongoLogPath=F:\mongo\log\mongo.log
set mongoConfAddr=F:\mongo\mongod.conf
set redisConfAddr=F:\redis\redis.windows.conf
) Else (
echo 請使用文本編輯器打開start.bar手動配置地址:
:: 請輸入你當前的FollowHeart根目錄地址:
set projectAddr=xxx
:: 請輸入mongo數據存儲地址(類似F:\mongo\data):
set mongoDbPath=xxx
:: 請輸入mongo日誌文件地址(類似F:\mongo\log\mongo.log):
set mongoLogPath=xxx
:: 請輸入mongo配置文件的地址(類似F:\mongo\mongod.conf):
set mongoConfAddr=xxx
:: 請輸入mongo配置文件的地址(類似F:\redis\redis.windows.conf):
set redisConfAddr=xxx
)
)
:: 公共參數設置 end
::清屏操作
rem cls
goto start
:start
echo --------------------------------------------------
echo -- FollowHeart部署 --
echo -- 1.啓動mongo和redis --
echo -- 2.啓動接口 --
echo -- 3.排行榜爬蟲 --
echo -- 4.百度貼吧榜爬蟲 --
echo -- 5.啓動微信小城程序 --
echo -- 6.新環境部署(該選項操作完成後會自動部署) --
echo -- 7.END --
echo --------------------------------------------------
ECHO.
echo (請輸入數字選擇操作命令)
set /p ans=
if %ans%==1 goto startMongoAndRedis
if %ans%==2 goto startApi
if %ans%==3 goto startRankReptile
if %ans%==4 goto startBdReptile
if %ans%==5 goto startWechat
if %ans%==6 goto deploy
if %ans%==7 goto END
:startMongoAndRedis
echo echo 正在啓動redis和mongo...
start "啓動mongo和redis" startMongoAndRedis.bat %redisConfAddr% %mongoLogPath% %mongoDbPath%
echo echo 已經啓動redis和mongo...
ECHO.
ECHO.
goto start
:startApi
ECHO.
echo 正在啓動後端接口,請確保在啓動接口之前已經執行過1了...
start "啓動後端接口" startApi.bat %projectAddr%
echo 後端接口啓動成功...
ECHO.
ECHO.
goto start
:startBdReptile
ECHO.
echo 正在運行百度貼吧爬蟲...
start "啓動百度貼吧爬蟲" startBdReptile.bat %projectAddr%
ECHO.
ECHO.
goto start
:startRankReptile
ECHO.
echo 正在運行排行榜爬蟲...
start "啓動百度貼吧爬蟲" startRankReptile.bat %projectAddr%
ECHO.
ECHO.
goto start
:startWechat
ECHO.
echo 正在啓動微信小程序...
start "啓動微信小程序" startWechat.bat %projectAddr%
ECHO.
ECHO.
goto start
:deploy
ECHO.
echo ----執行static項目解壓操作----
:: 執行的邏輯命令--爲bat文件傳參
start static.bat %uatPath% %sourcePath% %sourceDisk%
echo ----static項目解壓操作完成----
goto start
:END
ECHO.
echo 退出批處理操作
pause
啓動redis和mongo startMongoAndRedis.bat
@echo off
echo echo 正在啓動redis...
set redisConfAddr=%1
set mongoLogPath=%2
set mongoDbPath=%3
redis-server.exe %redisConfAddr% --loglevel verbose
If errorlevel 1 (
echo Redis已經啓動,請打開新的窗口輸入redis-cli.exe開啓你的管理吧...
) Else (
echo Redis啓動失敗,請檢查你配置的目錄是否正確...
)
ECHO.
echo 正在啓動Mongo...
mongod.exe --logpath=%mongoLogPath% --dbpath=%mongoDbPath% --journal --maxConns 20000
echo %errorlevel%
If errorlevel 1 (
echo Mongo已經啓動,請打開新的窗口輸入mongo開啓你的管理吧...
) Else (
echo Mongo啓動失敗,請檢查你配置的目錄是否正確...
)
啓動後端接口 startApi
@echo off
set projectAddr=%1
echo 正在啓動後端接口,請確保在啓動接口之前已經執行過1了...
cd %projectAddr%/api
If exist node_modules (
echo "node包已安裝..."
) Else (
cnpm install
)
node .
If errorlevel 1 (
echo 後端接口已經啓動,請在瀏覽器中打開localhost:3000/explorer來查看吧...
) Else (
echo 後端接口啓動失敗...
)
啓動爬蟲 startBdReptile.bat
@echo off
set projectAddr=%1
echo 正在運行百度貼吧爬蟲...
cd %projectAddr%/reptile
If exist node_modules (
echo node包已安裝...
) Else (
cnpm install
)
node networkReptile.js
踩的一些坑
創建bat文件最好先使用系統自帶的記事本創建一個文本文件,然後在另存爲bat文件,並且設置編碼爲ASNI,不然很容易中文亂碼的。包括使用一些主流的編輯器如sublime都會出現這種問題。博主建議使用sublime編輯bat文件,畢竟有語法高亮和快捷鍵,寫起來很方便。然後編寫完了別保存直接複製到記事本中保存,這樣能避免中文亂碼。如果你有更好的方法,不妨在評論中回覆博主。