技術ブログ

バッチで曜日を取得する方法

①VBScriptを使用する方法

①weekday.vbs→下記ファイルを適当な場所に保存する

WScript.Quit(WeekDay(Date))
@echo off

rem 曜日を取得
cscript /b C:\...\weekday.vbs←①で保存したパスを指定する。
if %errorlevel%==7 set WDAY=土
if %errorlevel%==6 set WDAY=金
if %errorlevel%==5 set WDAY=木
if %errorlevel%==4 set WDAY=水
if %errorlevel%==3 set WDAY=火
if %errorlevel%==2 set WDAY=月
if %errorlevel%==1 set WDAY=日

rem ログ出力
echo %date%(%WDAY%) %time: =0%>>C:\...\weekday.log←適当なパスにログファイルを出力する。

rem 終了
exit

@echo off

set /a week_yyyy=%date:~0,4% * 1
set week_mm=%date:~5,2%
if %week_mm:~0,1%==0 (
    set week_mm=%week_mm:~1,1%
)
set /a week_dd=%date:~8,2% * 1
rem 1月か2月なら年数を引いて月に12を足す ("ツェラーの公式"にて1月と2月は前年の13月と14月として扱う)
if %week_mm% leq 2 (
    set /a week_yyyy=%week_yyyy% - 1
    set /a week_mm=%week_mm% + 12
)
set /a week_num=(%week_yyyy% + %week_yyyy% / 4 - %week_yyyy% / 100 + %week_yyyy% / 400 + (13 * %week_mm% + 8) / 5 + %week_dd%) %% 7
if %week_num% == 0 set week_str=日
if %week_num% == 1 set week_str=月
if %week_num% == 2 set week_str=火
if %week_num% == 3 set week_str=水
if %week_num% == 4 set week_str=木
if %week_num% == 5 set week_str=金
if %week_num% == 6 set week_str=sut

rem 曜日を数字で出力します。(0:日、1:月、・・・、6:土)
echo %week_num%

rem 曜日を英字で出力します。
echo %week_str%

pause

参考URL:

コメント