各月份計畫事項事先通知LINE群組

閱讀時間約 15 分鐘

1. 設計功能            

將整年份計畫事項,包含每月一次或每單月一次,每雙月一次之固定日期將來臨前,需要事先準備執行的事項,先一件一件記入在文字檔內,以便能該事件來臨前幾天,以LINE訊息自動發送出該事件內容給群組全員,讓全員可以事先接到通知,事先做好準備,才不會遺忘重要計畫事件。

本件適用於各團體單位,尤其是年度內有許多定例計劃事項,需按時執行或舉辦之各種活動。

          

2. 作業說明       

2.1 讀取參數檔內含送信日,與計畫事項之訊息內容                

先Read 取得  input file內多筆Plan do 事項 ( input file: LINE_send_notify_par-LIN.txt)          

      讀取方法:            

      FOR /F "tokens=1,2* delims=?" %%i in ('findstr /C:"D?" LINE_send_notify_par-LIN.txt' ) do ( CALL :PlanDo %%j "%%k" )     

          

2.2  計畫事項取得處理  (CALL :PlaDo )             

2.2.1 取得計畫事項之日期與事項內容         

       <1>日期 :  set par_md=%1 

           該事件訊息於何日會發送出LINE訊息,依據%1 參數取得後,再判斷取得%1當日,與其前一天,共取得兩次發送日,即該事件將會連續兩天發出LINE訊息

       <2> 內容:  set par_message=%2    

           該事件訊息內容,依據%2 參數取得

2.2.2 送信日的前一日之取得處理         

       判斷今日是否為 發送日之前一日

       STEP1.0,0  檢查par  日期 是否正確判斷  

       STEP1.0,1  par前一日之篩選出範圍內

       STEP1.0.2 根據par_dd 前一天,得send_dd  ex.om14/ em14/ mm14 /0814  

           根據par_mm, 取得send_mm

           當前一日send_dd==00  特別處理  變為前月之第一日  ( CALL  :LastM_FinalDay )

       STEP1.0.3 若par前一天 ==今日,取得send訊息追加出力par檔 (當%send_mm%=99 不會send)    

2.2.3 送信日為當日之取得處理 

       判斷今日是否為 發送日

       STEP1.1,1  par當日之篩選出範圍內, 此時send_mm 為 上步驟 取得par前一日之月份    

       STEP1.1.2 根據par 取得par當日之send_dd      

       STEP1.1.3 若par日期 ==今日,取得send訊息追加出力par檔 (當%send_mm%=99 不會send) 

          

2.3 取得LINE send訊息後,執行LINE傳送程式 (CALL python exe檔  )           

2.3.1 發送LINE訊息內容於2.2 已取得       

2.3.2 欲發送給哪個LINE群組  之 token  序號出力至LINE傳送參數檔 

         (echo T,xxxxxxxxx3cs>> LINE_send_notify_par.txt)       

2.4 上述內容之詳細指令,請参考下面第四点bat設計


3. 實例說明          

3.1 PlanDo 計畫事項之txt檔案內容,依據個別需要,自行制訂年度計劃事項,可追加刪除,並且該計畫內容可多年使用

 即入力檔  ( LINE_send_notify_par-LIN.txt) 內容 如下:

D?mm14?每月18日前繳、玉山信用卡費
D?mm26?每月29日前繳、百管費
D?mm28?每月30日前繳、聯邦,華南,兆豐信用卡

D?om19?單月21日前繳、水費

D?em24?雙月28日前繳、電費
D?em26?雙月28日前繳、國保費

D?0423?每年 430日前繳,機車及汽車牌照稅
D?0523?每年 528日前繳,機車及汽車保險
D?0525?每年 531日前繳,所得稅,及房屋稅
D?0526?每年 531日郵局轉帳,房屋稅
D?0727?每年 731日前繳、機,汽車燃料稅
D?0729?每年 801日前,掛號信轉址申請
D?0903?每年 907日郵局轉帳、新光保險費
D?1019?每年1023日郵局轉帳,新光保險費
D?1126?每年1130日郵局轉帳、地價稅
D?1009?每年舊曆9/9先祖忌拜

   3.2 本例執行後,發送出LINE訊息

     依據上述檔案內之

D?0523?每年 5月28日前繳,機車及汽車保險

 因本日5/22,故於5/22,5/23連續兩天,都會發出LINE訊息內容如下:

raw-image


4  執行檔bat 設計內容如下 :

 @ECHO OFF
REM ---2個入力檔(1)LINE_send_notify_par.txt Python程式用 (2)LINE_send_notify_par-LIN.txt 計畫事日期
rem ---注意: par txt file 之傳送內容不可有 () ,因 cmd 會錯亂致當掉 ---
d:
rem cd D:\HTW-IT\LINEN
cd D:\lin_PC\cmd-bat\bat\LINE_Notify\LIN
set send_mm=99
set send_dd=88
set oem=nul
set send_F=N
set T_mm=%DATE:~5,2%
set T_dd=%DATE:~8,2%
::---判斷今日是奇月odd 或偶月even---
echo %T_mm% | findstr "02 04 06 08 10 12"
if %errorlevel%==0 set oem=even

rem Note---LINE_notify_par第一行空值不可, 右邊錯誤---echo.> LINE_send_notify_par.txt
echo M,> LINE_send_notify_par.txt
REM -----STEP1 Read 取得par file內多筆Plan do 事項 -----
FOR /F "tokens=1,2* delims=?" %%i in ('findstr /C:"D?" LINE_send_notify_par-LIN.txt' ) do ( CALL :PlanDo %%j "%%k" )

REM -----STEP2 取得send訊息後,執行傳送訊息LINE群組for python)---
if %send_F%==Y (
echo T,e7iEtrrrrrrrrrrrrrr5qEa0luu>> LINE_send_notify_par.txt
CAll LINE_send_notify.exe )
rem pause job end-----
EXIT

:PlanDo
set par_md=%1
set par_message=%2
set par_message=%par_message:"=%
set par_mm=%par_md:~,2%
set par_dd=%par_md:~2,2%

REM -----STEP1.0,0 檢查par 是否正確
echo %par_mm% | findstr "mm em om"
if %errorlevel%==0 (goto par_mmOK
) else ( if %par_mm% GTR 00 (
if %par_mm% LSS 13 (goto par_mmOK) else (echo ### ERROR par_mm 大於12 & goto PlanDo_Exit)
) else ( echo ### ERROR par_mm 小於00 & goto PlanDo_Exit ) )
:par_mmOK

if %par_dd% GTR 00 (
if %par_dd% LSS 32 (goto par_ddOK ) else (echo ### ERROR par_dd 大於31 & goto PlanDo_Exit )
) else ( echo ### ERROR par_dd 小於00 & goto PlanDo_Exit )
:par_ddOK

REM -----STEP1.0,1 par前一日之判斷是否要送信???
if NOT %par_mm:~1,1%==m (
if NOT %par_mm%==%T_mm% (
if NOT %par_dd%==01 goto PlanDo_Exit )
)

REM -----STEP1.0.2 根據par_dd 前一天,得send_dd ex.om14/ em14/ mm14 /0814
::---Note 08, 09 cannot compute, change to 8,9; 計算後小於100,00 保留
set send_dd=%par_dd%
if %par_dd:~,1%==0 ( set send_dd=%par_dd:0=% )
set /a send_dd=%send_dd% - 1
if %send_dd% LSS 10 (set send_dd=0%send_dd% )

::-----根據par_mm, 取得send_mm
if %par_mm:~1,1%==m ( CALL :MM_OM_EM %par_mm%
) else ( set send_mm=%par_mm% )
if %send_mm% NEQ 99 (
if %send_dd%==00 ( CALL :LastM_FinalDay %send_mm% ) )

REM -----STEP1.0.3 若par前一天 ==今日,取得send訊息追加出力par檔 (%send_mm%=99 不會send)
if %T_mm%==%send_mm% (
if %T_dd%==%send_dd% (
echo M,%par_message%>> LINE_send_notify_par.txt
set send_F=Y ))
rem pause --- step 1.0.3 chk

REM -----STEP1.1,1 par當日之判斷是否要送信??? (此時send_mm 為par前一日之月份)
if NOT %par_dd%==%T_dd% ( goto PlanDo_Exit
) else (
if NOT %par_dd%==01 (
if NOT %send_mm%==%T_mm% goto PlanDo_Exit )
)
REM -----STEP1.1.2 根據par 取得par當日之send_dd
set send_dd=%par_dd%
::-----根據par_mm, 取得send_mm
if %par_mm:~1,1%==m ( CALL :MM_OM_EM %par_mm%
) else ( set send_mm=%par_mm% )

REM -----STEP1.1.3 若par日期 ==今日,取得send訊息追加出力par檔 (%send_mm%=99 不會send)
if %T_mm%==%send_mm% (
if %T_dd%==%send_dd% (
echo M,%par_message%>> LINE_send_notify_par.txt
set send_F=Y ))
:PlanDo_Exit
rem pause --- step 1.1.3 chk
exit /b

:MM_OM_EM
set send_mm=99
if %1==mm (set send_mm=%T_mm% & goto BRK )
if %oem%==even (
if %1==em (set send_mm=%T_mm%
) else ( goto BRK)
) else (
if %1==om (set send_mm=%T_mm% )
)
:BRK
exit /b

:LastM_FinalDay
set send_mm=%1
if %send_mm:~,1%==0 ( set send_mm=%send_mm:0=% )
set /a send_mm=%send_mm% - 1
if %send_mm% LSS 10 (set send_mm=0%send_mm% )
rem FOR /F "tokens=1 delims= " %%i in ('echo %send_mm% ^| findstr "04 06 09 11" ') do ( set send_dd=30 )
rem ---不可 ^| 因errorlevel 結果取得都會0
echo %send_mm% | findstr "04 06 09 11"
if %errorlevel%==0 (
set send_dd=30
) else ( set send_dd=31 )
if %send_mm%==02 (
set send_dd=28
) else (
if %send_mm%==00 (set send_mm=12 ) )
exit /b


5 自動排程設定

上述執行檔bat設定於Windows自動排程,讓它能自動執行,若該日是發送日,將自動發送LINE訊息至設定的LINE群組,以達到能主動事先發送LINE訊息之功能。

-------recorded by linct ------

avatar-img
59會員
146內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
linct的沙龍 的其他內容
Google 提供了免費的雲端服務 Google Apps Script (GAS) ,我們可以撰寫一些簡易的程式APP,串接其他 Google 雲端服務 如 Google Docs ,Sheets …,就能夠幫助我們利用雲端硬碟做日常工作
(1)事前LINE主動發出通知,無論何處,所有人均可掌握值勤排班內容  (2) 換班前幾天收到通知,可事先安排交代事務給下回值勤人員,讓值勤業務能順利實施
查看近日氣候 近日若計畫舉辦戶外活動,想要在你的電腦查詢近日氣候,事先掌握三天內的氣候,或想在你的手機上查看近日氣候。
每日自動檢查資料庫運作所產生的訊息,若發現有錯誤,自動寄出警告信給擔當人員
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
利用總機每日外線通話紀錄所產出之紀錄檔案,一筆一筆抓出,並加以判斷是否異常,若有意常發生,將擷取該筆異常資料明細出力之,並email給相關管理者
Google 提供了免費的雲端服務 Google Apps Script (GAS) ,我們可以撰寫一些簡易的程式APP,串接其他 Google 雲端服務 如 Google Docs ,Sheets …,就能夠幫助我們利用雲端硬碟做日常工作
(1)事前LINE主動發出通知,無論何處,所有人均可掌握值勤排班內容  (2) 換班前幾天收到通知,可事先安排交代事務給下回值勤人員,讓值勤業務能順利實施
查看近日氣候 近日若計畫舉辦戶外活動,想要在你的電腦查詢近日氣候,事先掌握三天內的氣候,或想在你的手機上查看近日氣候。
每日自動檢查資料庫運作所產生的訊息,若發現有錯誤,自動寄出警告信給擔當人員
抓取對象檔案,自動進行壓縮處理,壓縮後產出一個壓縮檔案,如此便可節省硬碟使用空間
利用總機每日外線通話紀錄所產出之紀錄檔案,一筆一筆抓出,並加以判斷是否異常,若有意常發生,將擷取該筆異常資料明細出力之,並email給相關管理者
你可能也想看
Google News 追蹤
每到年終或期末的時候,許多人都會開始制定新的一年計畫,或是為新的學年、工作做準備。 不管是生活上每天的代辦清單或是每個月分需處理的生活大小事情,總是需要我們費心地去計劃、去處理;區分事情的輕重緩急。 科系發達的時代,傳統的紙本逐漸被手機和電腦給取代,現在的人打開手機的行事曆就能看到一天甚至是一年
Thumbnail
透過 Google Sheets 和 Make 打造專案任務自動提醒系統,當一到專案任務重要時程,系統便自動寄發專案任務的提醒信件或行事曆邀請,給專案任務負責人和相關團隊成員,確保專案進度如期完成,有效提升跨部門溝通協作效率!不再花費時間人工追蹤時程進度,釋放時間及專注力,專注在更重要的工作上!
02/17/2021 新年計劃 每年農曆年前,我都會訂個新年計劃。 但這個新年計劃,不是那個新年計劃。 這個新年計劃,純粹就是新年假期間要進行的活動。 而不是那個為了新的一年,所預訂的計劃。   年假期間排定計劃的起因,來自某一年的暑假為孩子排定了暑假計劃開始。 那年的暑假,我和孩子
Thumbnail
日記寫在哪裡?寫在Day One,寫在臉書,寫在每年換新的行事曆上。每天打開app,會跳出這一天有幾則條目。有時很多,有時一則也沒有。或在臉書,常常提醒動態回顧。有時很多,有時一則也沒有。我疑惑日子的飛逝,也忘記認識從前。當主動紀錄成為被動顯示,代表日子一去不回。於是,進入過去的今天,因為今天仍待完
Thumbnail
LINE社群網友提出的一個問題,想要產生每個月月底與每個月14號的日期序列。 這個需求只需要一個函數就可以完成了😏 <▶️影音教學> 看教學影片之前可以先打開EXCEL,學中做、做中學效果更好哦。 <📝圖文教學> ✍🏾EDATE回傳日期指定月份數前或後的日期
Thumbnail
內容行事曆是一種策略工具,可以幫助職場人士預先規劃和組織其內容創作與發布。透過明確規劃每日、每週或每月的內容主題、格式、發布管道和目標受眾,業者可以更有效地吸引、參與和保留客戶。特別是在節日或特殊事件期間,內容行事曆能夠幫助業者提前準備,確保市場活動和宣傳內容的時效性和吸引力。
Thumbnail
在職場上,我們常常需要規劃和追蹤活動的進度。為了確保活動能夠如期順利完成,我們需要掌握活動的開始日期、結束日期以及每個階段的截止日期。你是否曾經遇到以下情況?要準備重要的會議,但不知道距離會議還有多少天?要舉辦年度活動,但不知道距離活動還有多少天?要管理專案進度,但不知天數掌控?
每到年終或期末的時候,許多人都會開始制定新的一年計畫,或是為新的學年、工作做準備。 不管是生活上每天的代辦清單或是每個月分需處理的生活大小事情,總是需要我們費心地去計劃、去處理;區分事情的輕重緩急。 科系發達的時代,傳統的紙本逐漸被手機和電腦給取代,現在的人打開手機的行事曆就能看到一天甚至是一年
Thumbnail
透過 Google Sheets 和 Make 打造專案任務自動提醒系統,當一到專案任務重要時程,系統便自動寄發專案任務的提醒信件或行事曆邀請,給專案任務負責人和相關團隊成員,確保專案進度如期完成,有效提升跨部門溝通協作效率!不再花費時間人工追蹤時程進度,釋放時間及專注力,專注在更重要的工作上!
02/17/2021 新年計劃 每年農曆年前,我都會訂個新年計劃。 但這個新年計劃,不是那個新年計劃。 這個新年計劃,純粹就是新年假期間要進行的活動。 而不是那個為了新的一年,所預訂的計劃。   年假期間排定計劃的起因,來自某一年的暑假為孩子排定了暑假計劃開始。 那年的暑假,我和孩子
Thumbnail
日記寫在哪裡?寫在Day One,寫在臉書,寫在每年換新的行事曆上。每天打開app,會跳出這一天有幾則條目。有時很多,有時一則也沒有。或在臉書,常常提醒動態回顧。有時很多,有時一則也沒有。我疑惑日子的飛逝,也忘記認識從前。當主動紀錄成為被動顯示,代表日子一去不回。於是,進入過去的今天,因為今天仍待完
Thumbnail
LINE社群網友提出的一個問題,想要產生每個月月底與每個月14號的日期序列。 這個需求只需要一個函數就可以完成了😏 <▶️影音教學> 看教學影片之前可以先打開EXCEL,學中做、做中學效果更好哦。 <📝圖文教學> ✍🏾EDATE回傳日期指定月份數前或後的日期
Thumbnail
內容行事曆是一種策略工具,可以幫助職場人士預先規劃和組織其內容創作與發布。透過明確規劃每日、每週或每月的內容主題、格式、發布管道和目標受眾,業者可以更有效地吸引、參與和保留客戶。特別是在節日或特殊事件期間,內容行事曆能夠幫助業者提前準備,確保市場活動和宣傳內容的時效性和吸引力。
Thumbnail
在職場上,我們常常需要規劃和追蹤活動的進度。為了確保活動能夠如期順利完成,我們需要掌握活動的開始日期、結束日期以及每個階段的截止日期。你是否曾經遇到以下情況?要準備重要的會議,但不知道距離會議還有多少天?要舉辦年度活動,但不知道距離活動還有多少天?要管理專案進度,但不知天數掌控?