• 締切済み

タスクスケジューラでコマンドを実行するには

WinXPでタスクスケジューラを使い、ローカルでスクリプトを定期的に実行させたいと考えています。 RUBYでスクリプトを走らせたいのですが、タスクスケジューラでコマンドプロンプトにコマンドを自動入力・実行させることは可能でしょうか。 RUBYの起動は C:\WINDOWS\system32\cmd.exe /E:ON /K C:\Ruby193\bin\setrbvars.bat でスケジュールできたのですが、その後 cd c:\a ruby hoge.rb の2つを自動で実行できるようにしたいです。 可能であればどのようにすればよいか、不可能でしたら代替案があれば是非ご教示下さい。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

Rubyはどのパッケージをどうやってインストールしましたか? Ruby Installer (http://rubyinstaller.org/)などのパッケージで普通にインストールしたのなら、PATHにはRubyのbinディレクトリがセットされているはずので、setrbvars.batの実行は不要です。 単に、 ruby C:\a\hoge.rb を実行すれば良い。hoge.rbの先頭に下記を書いて chdir すればいいでしょう。 Dir.chdir File.dirname($0) もしPATHが設定されておらず上記でだめなら、システム環境変数のPATHの末尾に ;C:\Ruby193\bin を追加するか、あるいは、タスクスケジューラにフルパスで書きます。 C:\Ruby193\bin\ruby C:\a\hoge.rb

関連するQ&A