用 .bat 打造定時維護的 Github Repo

本文最後更新於:2023年9月12日 上午

用 .bat 打造定時維護的 Github Repo

Motivation:

之前一直沒有注意到可以用自動化的工具來幫我定期維護本地的repo
每次都要靠人腦記憶,還常常遇到 conflict 要解,太麻煩了
今天下定決心要自動化整個流程
幫我把本地上的 notes 定時 push 到 Github 上!

Process:

所需工具:
一份簡單的 commit_push.bat 和 Windows 內建的任務排程器

建立 .bat 檔案

先在目標 repo 的路徑下,建立一份 commit_push.bat :

1
2
3
4
5
6
7
8
#!/bin/bash
@echo off
cd /path/to/your/repo

git add .
git commit -m "Commit Automatically"
git push origin master

建立基本工作排程

用Win+R,輸入taskschd.msc 來開啟工作排程器,主要從右側的動作欄操作
Imgur

點選右側的建立基本工作...會開啟一個設定精靈,先輸入名稱跟描述。
Imgur

觸發程序主要是選擇觸發的間隔,可以自行選擇希望的時段
Imgur

設定開始這項計畫工作的時間,間隔天數這裡也可以更改。
Imgur

選擇啟動程式,瀏覽並選擇你之前創建的 commit_push.bat 檔案。
Imgur

完成設定!
它會在你設定的時間間隔內運行你的批處理腳本,從而自動 commit 和 push 更改到 GitHub

參考資料

工作排程器–Windows的忠實程序秘書 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

補充:@echo off

以下我請 gpt 補充 @echo off 的作用:

以下是一個具體的例子來展示 @echo off 的作用。

假設我們有一個簡單的批處理文件叫做 example.bat

不使用 @echo off

1
2
echo This is a simple batch file.
dir

當你執行這個批處理文件時,你將會看到以下的輸出:

1
2
3
4
echo This is a simple batch file.
This is a simple batch file.
dir
<Directory listing here...>

注意,每條命令(如 echo This is a simple batch file.dir)都會在它的輸出之前被打印出來。


使用 @echo off

現在,我們在批處理文件的開頭加入 @echo off

1
2
3
@echo off
echo This is a simple batch file.
dir

當你執行這個版本的批處理文件時,你將會看到以下的輸出:

1
2
This is a simple batch file.
<Directory listing here...>

如你所見,由於 @echo off 的存在,命令本身(例如 echo This is a simple batch file.dir)不再被打印出來,只有它們的輸出結果被顯示。而 @ 確保了 echo off 這條命令本身也不被打印。

這就是為什麼很多批處理文件在開頭都使用 @echo off:它讓腳本的執行輸出看起來更加整潔。