为什么%date%在作为计划任务执行的批处理文件中产生不同的结果?

TRe*_*Rex 2 windows batch-file

批处理文件正在运行,robocopy并正在创建名为name的日志文件robocopyServer_%date%.txt

手动运行批处理文件时,结果是 robocopyServer_yyyy-mm-dd.txt

当批处理文件从Windows Server 2016上的计划任务运行时,结果是robocopyServer_Tue(或星期几),并且没有文件扩展名。

该批处理文件可以在Windows Server 2012 R2上完美运行(手动或作为计划任务)。

Reg*_*jok 6

%date%或date /t不一定总是可靠的,因为它取决于区域和用户设置。这是获得通用有效日期的方法:

for /f %%# in ('wmic os get localdatetime^|findstr .') do if "%%#" neq "" set date=%%#
set date=%date:~,4%-%date:~4,2%-%date:~6,2%
echo %date%
Run Code Online (Sandbox Code Playgroud)

这将以yyyy-mm-dd格式回显当前日期。