根据星期几运行批处理文件的各个部分

时间:2012-11-27 19:26:40

标签: file parsing batch-file dayofweek

我在SQL Server代理作业中运行dos批处理文件。我在批处理文件中有34个步骤。除步骤31外,所有步骤每天都在运行。它仅在星期二运行。我可以设置另一个SQL代理作业,但这似乎有点矫枉过正。如何在批处理文件中查询星期几的系统,以便仅在星期二运行步骤31?我尝试了下面的代码,但没有运气。

For /F "tokens=1 delims= " %%A in ('Date /t') do @( 
Set DayName=%%A 
) 

if('%DayName:~0,3%' equ 'Tue') <run step 31>

当我回显'%DayName:~0.3%'时,它显示'Tue'

2 个答案:

答案 0 :(得分:4)

您可以使用:

wmic path win32_localtime get dayofweek

返回“2”是星期二。

答案 1 :(得分:1)

感谢您的反馈。我发现了这个问题。这是if声明中的parens。一旦我删除它,它工作正常。我也删除了单引号。

这有效

if %DayName:~0,3% equ Tue

这也有效:

if '%DATE:~0,3%' equ 'Tue'

这些不能工作

if %DATE:~0,3% equ 'Tue'
if (%DATE:~0,3% equ Tue)