2

我在 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'

4

2 回答 2

4

你可以使用这个:

wmic path win32_localtime get dayofweek

返回“2”是星期二。

于 2012-11-27T19:32:12.900 回答
1

感谢您的反馈。我发现了这个问题。它是 if 语句中的括号。一旦我删除它们,它就可以正常工作。我还删除了单引号。

这有效

if %DayName:~0,3% equ Tue

这也有效:

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

这些不起作用

if %DATE:~0,3% equ 'Tue'
if (%DATE:~0,3% equ Tue)
于 2012-11-27T19:57:09.667 回答