仅在工作日/选定日期运行批处理脚本

时间:2013-08-07 06:44:51

标签: batch-file date-format

我有一个批处理文件来进行数据库备份,计划每天在选定的时间运行。但我不希望在周末运行相同或在选定日期说。在我的服务器上,%DATE%将于2013年7月7日返回。因此%DATE:~0,3%返回07/而不是白天。

有没有办法返回一天,然后使用if-else,我可以指导程序按照要求流动。

我的服务器运行Windows server 2003。

2 个答案:

答案 0 :(得分:2)

weekend的示例:

@ECHO OFF &SETLOCAL
for /f "tokens=2*" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate^|find "REG_SZ"') do set "ssShortDate=%%b"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "d" >nul
FOR /f %%a IN ("%date%") DO SET "dow=%%a"
reg add "HKCU\Control Panel\International" /f /v sShortDate /d "%ssShortDate%" >NUL
IF /i "%dow:~0,1%"=="s" ECHO weekend!

答案 1 :(得分:1)

我正在学习WMI,以下应该可以正常运行:

FOR /F "TOKENS=1,* DELIMS==" %%v IN ('WMIC Path Win32_LocalTime Get /FORMAT:VALUE') DO IF "%%v" == "DayOfWeek" SET DayOfWeek=%%w
IF %DayOfWeek% == 0 REM Do whatever you want for Sunday
...
IF %DayOfWeek% == 6 REM Do whatever you want for Saturday

编辑:根据对Win32_LocalTime class的评论改变,说明文件是错误的。

相关问题