工作遇到的问题小记(一)

路小乙 / 2024-10-21 / 原文

服务器的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