- ベストアンサー
タスクスケジューラーに登録するプログラム
- タスクスケジューラーに自動で登録するプログラムを組みたいと思っています。VBSなら微妙に経験があります。
- C:TESTの中にあるTEST.bat というバッチファイルを毎週月曜日に実行したいと思っています。TEST.batは、C:TESTの中にあるファイルを参照し、ファイルを開くものになっています。
- コマンドプロンプトだと、at コマンドでできるみたいですが…毎回コマンドプロンプト開いて打ってられません。何か良い方法があれば、お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>もし、何度もクリックしてしまったら >同じものが何個もできる、ということでしょうか? >タスク実行がどんどん増えてしまいますか? 私が書いたサンプルのままで実行した場合、 「警告: タスク名 "test" は既に存在します。置き換えますか (Y/N)?」 となり、上書きするかやめるかを聞いてきます。 Yとすれば上書きされることになります。 /tn test とタスク名を指定しているため、増えていくことはありません。 また、メッセージを出さずに強制的に上書きする場合は /f オプションを追加すれば良いです。 >人によって時間を設定したかったりする場合があります。 >それはコマンドプロンプトで入力を促したりすることは >できるのでしょうか? set /P JIKAN="時間を入力して下さい:" このようにすればユーザーに入力を促すことが出来ます。 入力した値は、上記の例ではJIKANという変数に入ります。 %JIKAN% とすれば取り出せるので /st 10:00 を /st %JIKAN% にすればいいのですが、誤った入力をした場合 schtasksコマンドがエラーになるのでこの辺は少し考えどころです。
その他の回答 (2)
- maesen
- ベストアンサー率81% (646/790)
私の認識が違っていたら指摘して下さい。 >C:TESTの中にある >TEST.bat というバッチファイルを毎週月曜日に実行したいと思っています。 >C:TESTの中にタスクスケジュール登録ようのバッチファイルか何かを用意し、 C:TESTに、「タスク登録.bat」という名前のテキストファイルを置きます。 この「タスク登録.bat」の内容は以下のような感じです。 schtasks /create /tn test /tr "C:TEST\TEST.bat" /sc weekly /d MON /st 10:00 これでPCを使用しているユーザーに「タスク登録.bat」を一度だけ実行すれば タスクスケジューラに毎週月曜日の10:00に「C:TEST\TEST.bat」を実行するtestという名前のタスクが登録されます。 >例えば、タスクスケジュール登録バッチが >C:\TEST\チェック\Aさん にあるとします。 >その、AさんのフォルダにあるTEST.batを実行するよう 登録バッチがあるフォルダが固定化では無いということでしょうか? それならば登録バッチを実行したときのフォルダを環境変数から取得すればいいと思います。 "C:TEST\TEST.bat" ↓ "%~dp0\TEST.bat" このように指定すれば良いはずです。
お礼
回答ありがとうございました!
補足
回答ありがとうございます! とても参考になります^^ 二つ気になることがあります。 もし、何度もクリックしてしまったら 同じものが何個もできる、ということでしょうか? タスク実行がどんどん増えてしまいますか? あもう一つは、 人によって時間を設定したかったりする場合があります。 それはコマンドプロンプトで入力を促したりすることは できるのでしょうか? 色々お手数をお掛けして申し訳ありませんが、 回答よろしくお願い致します。 大枠は完璧でした!ありがとうございます!!
- maesen
- ベストアンサー率81% (646/790)
>C:TESTの中にタスクスケジュール登録ようのバッチファイルか何かを用意し、 >それを叩けば簡単にタスクスケジュール登録ができるものを作りたいと思っています。 これでいいのならば難しい話では無いとおもいます。 タスクスケジュール登録するコマンドを記載したバッチファイルを作成すれば良いだけだと思いますが。 >コマンドプロンプトだと、 >at コマンドでできるみたいですが…毎回コマンドプロンプト開いて打ってられません。 コマンドプロンプトで出来ることはほぼバッチファイルで出来ます。 OSが書かれていないので何とも言えませんが、 ただ今回の場合、atコマンドは古いコマンドです。 互換性のためコマンドは残されていますが、Windows7とか8のタスクは設定出来ない項目があります。 schtasksコマンドを使用すれば良いと思います。 http://technet.microsoft.com/ja-jp/windows/ff467963.aspx
お礼
回答ありがとうございました!
補足
回答ありがとうございます! 色々と記入不足でした。申し訳ありません。 今回やりたいことは、 トリガーを実行したフォルダにあるバッチファイル?にしたいのです。 それをそれぞれ人に渡し、実行してもらう予定です。 例えば、タスクスケジュール登録バッチが C:\TEST\チェック\Aさん にあるとします。 その、AさんのフォルダにあるTEST.batを実行するよう トリガーをつけたい?のです。 色々分かりにくいかもしれませんが、お願い致します。
お礼
回答ありがとうございます! ひとつひとつ丁寧に回答してくださり 本当に助かります! maesen様の回答を参考に 作って、活用していきたいと思います! ありがとうございました^^