スケジュールタスクをコマンド操作する

システムメンテナンス編(3) で紹介したWindows 7のタスク機能ですが、GUI操作ではすべてのタスクを確認するのは、骨の折れる作業となるのでは。そこでお使い頂きたいのが「schtasks.exe」。元々Windows XP時代から搭載されていたコマンドですが、スケジュールタスクの仕様が変わったWindows VistaやWindows 7の同機能にも対応し、タスクの登録や削除、実行といった操作が可能。例えば同コマンドをそのまま実行しますと、現在登録されているタスクの一覧が表示されます(図03~05)。

図03 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「cmd」と入力して<OK>ボタンをクリックします/p>

図04 標準ユーザーの場合は<スタート>メニューのクイック検索に「cmd」と入力し、列挙された同名の項目を右クリック。メニューから<管理者として実行>をクリックします

図05 コマンドプロンプトが起動したら、「schtasks」と入力して[Enter]キーを押してください。これでWindows 7に登録されているタスクの一覧が表示されます

この表示結果を少し解説しましょう。「フォルダー」はタスクスケジューラーで言うところのコンソールツリーに連なるフォルダと指し、「タスク名」は中央ペインに並ぶタスクを意味します。「次回の実行時刻」も中央ペインにある同名のカラムを指し、「状態」も同様。また、タスクが登録されていないフォルダも列挙されますが、「アクセスレベルに現在使用可能な予定されたタスクはありません」と表示されます(図06)。

図06 「schtasks」コマンドとタスクスケジューラーの表示結果

同コマンドには数多くのオプションが用意されており、タスクを列挙する「/query」オプションに加え、「/tn」オプションとタスク名を併用することで、特定のタスクに関する情報を表示させることもできます。この際、詳細情報を表示する「/v」オプション、カラム情報の出力を抑制する「/nh」オプションを組み合わせることで、タスクの詳細情報を見やすくさせましょう。また「/xml」オプションを使えば、XML形式で出力することも可能。これはタスクスケジューラーにおけるタスクのエクスポート機能と同等の結果となります。なおXML形式を用いる場合、「/v」「/nh」オプションは併用できません(図07~08)。

図07 「schtasks /query /tn "{タスク名}" /v /nh」と入力して[Enter]キーを押せば、タスクの詳細情報が表示されます

図08 「schtasks /query /tn "{タスク名}" /xml」と入力して[Enter]キーを押せば、タスクの情報がXML形式で表示されます

今度はタスクを作成してみましょう。前回作成したRadiko.jpへ指定時間に自動アクセスし、特定時間に終了するタスクを作成するには、「schtasks /Create /tn "RadioPlay" /tr "C:\Program Files (x86)\Internet Explorer\iexplore.exe http://radiko.jp/player/player.html#FMT" /sc daily /st 08:00」とコマンドプロンプト上で実行します。各オプションの説明は後回しにして、まずは結果をご覧ください。タスクは正しく作成されましたが、実行プログラムが正しく認識していません。結果をかんがみるに最初のスペースをプログラムと引数の区分けに使っているため、このような結果となるのです。これを避けるには、あらかじめバッチファイルやスクリプトファイルを作成し、同ファイルを「/tr」オプションの引数として指定してください(図09~10)。

図09 「schtasks /Create /tn "RadioPlay" /tr "C:\Program Files (x86)\Internet Explorer\iexplore.exe http://radiko.jp/player/player.html#FMT" /sc daily /st 08:00」と入力して[Enter]キーを押せば、タスクが作成されます

図10 タスクスケジューラーーからタスクのプロパティダイアログを開き、<操作>タブから確認しますと、プログラムが正しく登録されません。別途スクリプトを用意するか、同ダイアログから編集してください

さて、各オプションですが、ご覧になると何となく理解できるように「/Create」はタスクを作成するために必要なオプション。「/tn」オプションは作成するタスク名を記述し、「/tr」オプションは実行するプログラムやスクリプトを指定します。「/sc」オプションはスケジュールの実行頻度を指定し、「MINUTE」「HOURLY」「DAILY」「WEEKLY」「MONTHLY」「ONCE」「ONSTART」「ONLOGON」「ONIDLE」「ONEVENT」からお選びください。最後の「st」オプションは実行時刻を指定するためのもの。「HH:mm」の24時間形式で指定しましょう。省略すると現在の時刻となります。このほかにも実行するユーザーアカウントやコンピュータ名など多彩なオプションが用意されていますので、「schtasks /Create /?」とヘルプテキストを確認してください。

タスクを削除するには、「schtasks /delete /tn "RadioPlay"」と実行します。このオプション構成はご覧のとおり、基本的なアクションとして「/delete」を最初に指定し、「/tn」オプションでタスク名を指定するだけです。同コマンドを実行しますと、確認をうながすプロンプトが表示されますので「Y」と入力してください。このプロンプトは「/f」オプションを加えることで抑制できます(図11)。

図11 「schtasks /delete /tn "RadioPlay"」と入力して[Enter]キーを押すと確認をうながすプロンプトが表示されますので、「Y」と入力すれば、タスクを削除できます。確認せず削除するには「/f」オプションを加えてください