%Time%在用户启动时工作但在触发任务时不工作

时间:2016-07-21 17:03:18

标签: batch-file cmd scheduled-tasks

我有一个使用Task Scheduler运行的批处理文件。这段代码失败了:

Set mm=%DATE:~4,2%
Set dd=%DATE:~7,2%
Set yyyy=%DATE:~10,4%
set t=%TIME:~0,2%

mkdir L:\Weekly\%yyyy%%mm%%dd%%t%\Edge

当我启动任务时,会创建此目录:

L:\Weekly\2016063013\Edge

但是,当通过计划的触发器运行任务时,将创建此目录:

L:\Weekly\20160702

我很难调试此错误。我需要小时来区分事件后手动触发的备份与正常的夜间/每周自动例程。

1 个答案:

答案 0 :(得分:0)

@posefZ在评论我的问题时解决了这个问题。

脚本在中午之前无法运行,因为当我用%TIME:~0,2%拉小时时,该值用空格填充,即" 2" 即可。这就是 makedir 不包含" \ Edge" 子目录的原因。

以下是更正后的摘录:

Set mm=%DATE:~4,2%
Set dd=%DATE:~7,2%
Set yyyy=%DATE:~10,4%
Set t=%TIME:~0,2%

::replace space with a zero
Set t=%t: =0%

mkdir L:\Weekly\%yyyy%%mm%%dd%%t%\Edge