我有一个批处理文件来进行数据库备份,计划在每天选定的时间运行。但我不想在周末运行相同的或在选定的日子说。在我的服务器上,%DATE%
返回 07/08/2013。所以做%DATE:~0,3%
回报07/
而不是一天。
有没有办法返回一天然后使用if-else,我可以根据要求引导程序流动。
我的服务器运行 Windows server 2003。
我有一个批处理文件来进行数据库备份,计划在每天选定的时间运行。但我不想在周末运行相同的或在选定的日子说。在我的服务器上,%DATE%
返回 07/08/2013。所以做%DATE:~0,3%
回报07/
而不是一天。
有没有办法返回一天然后使用if-else,我可以根据要求引导程序流动。
我的服务器运行 Windows server 2003。
示例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!
我正在学习 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 类说明文档错误的评论。