プロが教えるわが家の防犯対策術!

バッチファイルの中で曜日判定で処理内容を変えたいのですが
DOSコマンドのdateでは曜日を出力できませんでした。

そこで、Services for UNIX 3.5をインストールし、UNIXのdateコマンドを使って曜日判定をしようとしたのですが、以下のようにエラーに
なってしまいます。

===バッチの中身==
rem 曜日判定
set wk=c:\SFU\bin\date +%a

IF %wk% EQU "日” call batch_1.bat
 ・・・ ・・・
======
上記をコマンドプロンプトで実行しますと
date: illegal time format
usage: date [-u] [-r seconds] [+format]
date [-u] -t [[[[[CC]yy]mm]dd]HH]MM[.SS] [+format]
date [-u] [+format] mmddHHMM[yy]
+aの使い方が誤っています。

※ちなみコマンド単体で実行すると正常です。
c:\SFU\bin\date +%a

A 回答 (2件)

SFUでの解決方法ではないですが、私がよく使う方法を紹介します。

VBScriptを使うので別途ソフトウェアをインストールする必要がありません。

---getWeekday.vbs---
wscript.quit(WeekDay(date))
--------------------

---getWeekday.bat---
Cscript //nologo getWeekday.vbs
echo %ERRORLEVEL%
--------------------
ERRORLEVELに
1 から 7 の数値が返ります。
1:日曜~7:土曜

別案ですがこんな方法もありますってことで。
    • good
    • 0
この回答へのお礼

ありがとうございます!!

上記の通り書き、曜日判定が出来るようになりました。
助かりました。

お礼日時:2006/10/18 21:48

バッチの中では%aでなくて^%aと書かないといけなかったかも。

(うろ覚え)
違ってたらすみません。

この回答への補足

%aを^%aに変えて実行してみたのですが、
エラーになります。
バッチファイルでは%って認識されないのでしょうか。

補足日時:2006/10/18 21:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!