伺服器的Task Scheduler(任務計劃程式)切換執行人時遇到,從development.cn切到system時,JOB實際對應的bat命令無法正常啟動執行,也不報錯
原bat命令程式碼如下
@echo off chcp 437set new=%date:/=% set STRDATE=%new:~8,4%%new:~4,4%set STRDATE=%new:~3,8% cd D:\SAPInterface\BI\script call bi_dp2ldw_fot_summary.bat >>..\log\%STRDATE%_bi_dp2ldw_fot_summary.log exit
問題出在STRDATE的賦值處,
STRDATE想要的格式是yyyyMMdd,
上面的STRDATE兩次賦值就是在不同的時區下透過不同的提取邏輯組裝出這個固定的日期格式
切換執行賬號導致原本的取值失效,透過新的提取邏輯得到正確的日期,
所以這次又切換賬號,時區再次變化,導致bat命令無法執行
經過實踐,偷懶的解決方法,註釋掉第二句既可
set STRDATE=%new:~8,4%%new:~4,4%
rem set STRDATE=%new:~3,8%
同事提供的另一個解決方法
for /f "delims=" %%i in ('powershell -command "Get-Date -Format yyyyMMdd"') do set STRDATE=%%i