我在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'
答案 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)