スポンサーリンク
はじめに
Windows バッチ(拡張子が.batのファイル)で曜日の判定を行い、曜日別に処理を行うような処理を作る方法を紹介します。
Windows 標準コマンドには、曜日の取得を行うコマンドがありません。そのため、VBScriptと組み合わせて曜日の取得を行っていきます。
作成するファイル
ファイル | 内容 |
---|---|
weekday.vbs | 曜日を取得する VBScript |
main.bat | メインの Windowsバッチ |
スポンサーリンク
コードの内容
weekday.vbs
まずは、曜日を取得する為の weekday.vbs
です。
WScript.Quit(WeekDay(Date))
[解説]
現在の日付から曜日を 1(日曜) ~ 7(土曜)の整数値で取得し、バッチの戻り値としています。
main.bat
次はメインの Windows バッチです。
cscript /b .\weekday.vbs
if %errorlevel%==7 set WDAY=SAT
if %errorlevel%==6 set WDAY=FRI
if %errorlevel%==5 set WDAY=THU
if %errorlevel%==4 set WDAY=WED
if %errorlevel%==3 set WDAY=TUE
if %errorlevel%==2 set WDAY=MON
if %errorlevel%==1 set WDAY=SUN
# あとは、WDAY 環境変数の中身を見て、曜日毎の処理を行う
[解説]
先ほど作成した weekday.vbs
を最初に実行し、曜日を取得します。
実行後、%errorlevel%
に1(日曜) ~ 7(土曜)の曜日が入ります。
%errorlevel%
は別の処理を実行してしまうと、内容が書き換わってしまう為、一旦別の変数(WDAY)に曜日を格納します。
あとは、変数(WDAY)の内容に従い、曜日毎の処理を行なっていきます。
最後に
自分は、曜日毎に7世代分のバックアップを取得する必要があり、今回のような処理が必要となりました。
曜日毎にバッチ処理で何かを行うのは、以外とよくある要件の為、覚えておいて損はないと思います。
(2018/10/25 追記)
こちら のページで、曜日別にファイルをバックアップするサンプルコードを公開しています。
0 件のコメント:
コメントを投稿