天天看點

Hexo,使用bat腳本部署文章

寫在前面

  熟悉Hexo的朋友都知道,寫好的Markdown文章應該放到hexo安裝目錄的

source\_posts

檔案夾下,然後使用指令

hexo g -d

或者是

hexo d -g

進行部署。我在使用Hexo的時候,

_post

目錄其實是關聯了我的一個遠端Github倉庫,我習慣于用小書匠這款編輯器來寫MD文章(主要是因為小書匠可以關聯使用多個平台的圖床服務),寫好後也可以直接儲存到這個遠端倉庫中。按以前那種方式,我首先需要在

_post

目錄中

pull

最新的文章,然後再使用

hexo g -d

指令來部署。老實說,我承認自己是個懶人,之前也搗騰過用Travis CI來解決hexo自動化部署的問題,但就是一直卡在某一步,然後現在也就擱置了,下來如果弄成功了我會再寫一篇文章。今天這篇文章是主角是使用bat腳本來部署文章,在那之前我們先了解一下bat。

關于bat

  bat是Windows平台下的一種腳本語言,類似于Linux平台下是shell。下面隻是舉幾個簡單的例子,點到為止就好,更多關于bat腳本的文法可以檢視

這裡

文法 解釋
echo 表示列印該指令後的字元,如

echo hello

執行後會列印“hello”
echo off 表示在此語句後所有運作的指令都不顯示指令本身 ,但本身會顯示
@ 與echo off相象,但它是加在每個指令行的最前面,表示運作時不顯示這一行的指令行(隻能影響目前行)
@echo off 組合上兩個文法,表示不顯示後續執行指令及目前指令
dir c:*.* >a.txt 将c盤檔案清單寫入a.txt
call 用于調用另一個批處理指令或檔案(如果不用call而直接調用别的批處理檔案,那麼執行完那個批處理檔案後将無法傳回目前檔案并執行目前檔案的後續指令)
call c:\ucdos\ucdos.bat 調用ucdos.bat腳本
pause 暫停批處理的執行并在螢幕上顯示

Press any key to continue...

的提示,等待使用者按任意鍵後繼續
rem 用于注釋,也可以用

::

代替
start 調起另外一個視窗執行目前行指令

實戰部署

  下面貼出的這段代碼,也是我用來部署hexo文章的bat腳本(在hexo安裝目錄下建立

deploy.bat

,拷貝代碼,每次輕按兩下運作即可),用Sublime看會比較清晰一點。

:: 左邊的兩個冒号和rem的效果是類似的,都是注釋的作用
:: 下面這段代碼已經注釋,如果去掉rem,那麼包含echo off本身和後面的call指令都不會再列印
rem @echo off 
:: call表示在目前視窗執行後面的指令或調用其它腳本
call cd source/_posts
git pull origin master
cd ../../
hexo g -d
           
Hexo,使用bat腳本部署文章

hexo-deploy.bat

寫在最後

  所謂好的工具都是為了提高效率而生的,後續本人可能要維護多個平台的文章發表,是以計劃用Python寫一些自動化釋出文章的腳本,然後再結合bat腳本進行調用,感興趣的小夥伴歡迎繼續關注!

參考文章

Windows Batch Scripting BAT腳本編寫教程 Windows .bat 腳本簡單用法介紹