• 締切済み

echo と%ERRORLEVEL%の値について

今日の日付から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の内容が日付になるのでしょうか。

みんなの回答

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

デフォルトでコマンドプロンプトを起動すると 「コマンド拡張機能」が 「有効」 になって起動します。 ですがタスクスケジューラからの起動では 「無効」 になっているのかもしれません。   cmd /e:on これを main.bat の一行目に記述してみてください。 コマンド拡張機能が無効になっている事が原因であればこれで解決するはずです。

q_ta
質問者

補足

ありがとうございます。 また、お返事が遅くなって大変申し訳ございません。 試した結果は下記のとおりでした。 1.コマンドプロンプトで実行:   logoがechoされ、結果はechoされませんでした。 2.タスクスケジューラで実行:   実行状態のままになってしまいます。   特にエラーは吐き出されていませんが、停止しているような状態になります。 ご教示いただけますと幸いです。

関連するQ&A