0

毎日選択した時間に実行するようにスケジュールされた、DB バックアップを取るためのバッチ ファイルがあります。しかし、週末に同じことを実行したり、選択した日に言ったりしたくありません。私のサーバーでは、07/08/2013 を%DATE%返します。そのため、日の代わりに%DATE:~0,3%返品を行います。07/

日を返す方法はありますか? if-else を使用して、要件に従ってプログラムが流れるように導くことができます。

私のサーバーは Windows Server 2003 を実行しています。

4

2 に答える 2

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!
于 2013-08-07T07:24:53.530 に答える
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 クラスのコメントに従って、変更されました。

于 2013-08-07T08:08:42.453 に答える