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

今日の日付から7日前の日付をテキストファイルに保存しようとし、下記のようにスクリプトを作成しました

ago7.vbs
---------------------------
dim ago7d
ago7d = dateadd("d", -7, now())
WScript.Quit(year(ago7d) & right(100 + month(ago7d),2) & right(100 + day(ago7d),2))
---------------------------

main.bat
---------------------------
cscript //nologo ago7.vbs
echo %ERRORLEVEL%>D:\log.txt
---------------------------

ago7.vbsで7日前の日付を取得し、main.batで受け取り、テキストファイルに出力しています。

こちらをコマンドプロンプトから直接「main.bat」を起動してやると正しく動作しますが、
(この場合のlog.txtは 20120903tが書き込まれて出力されています。)
タスクスケジューラを使ってmain.batを実行すると、log.txtの新居陽は下記のようになってしまいます。

ECHO は <ON> です。

いろいろ試してみていますがうまくいきません。
どのようにすればlog.txtの内容が日付になるのでしょうか。

A 回答 (1件)

デフォルトでコマンドプロンプトを起動すると 「コマンド拡張機能」が 「有効」 になって起動します。


ですがタスクスケジューラからの起動では 「無効」 になっているのかもしれません。

  cmd /e:on

これを main.bat の一行目に記述してみてください。
コマンド拡張機能が無効になっている事が原因であればこれで解決するはずです。

この回答への補足

ありがとうございます。
また、お返事が遅くなって大変申し訳ございません。

試した結果は下記のとおりでした。

1.コマンドプロンプトで実行:
  logoがechoされ、結果はechoされませんでした。

2.タスクスケジューラで実行:
  実行状態のままになってしまいます。
  特にエラーは吐き出されていませんが、停止しているような状態になります。

ご教示いただけますと幸いです。

補足日時:2012/09/13 15:11
    • good
    • 0

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