- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Windows/Vista

はじめに Edit

Windows Vistaのタスクスケジューラーでバックアップのバッチファイルを実行しようとしてハマったので備忘録です。

注意点 Edit

タスクスケジューラーの場所 Edit

  • スタートメニュー→管理ツール→タスクスケジューラ
    にあります。
  • もしくは、Winキー+R→「ファイル名を指定して実行」から、
    Taskschd.msc
    
    と入力でも起動します

バッチファイルが動かない!のをなんとかする方法 Edit

これは私のハマったところです。

これは、作業ディレクトリを指定していないからです。
タスクのプロパティの「操作」タブ、「操作の編集」にて、
「開始(オプション)(T)」に作業ディレクトリを入力しておけばOKです。

実はヘルプに書いてあります。(しかし「開始」じゃわからんw)
以下ヘルプより引用

[開始 (オプション)] ボックスには、プログラムまたはスクリプトを実行するコマンド ラインの作業ディレクトリを指定できます。プログラムまたはスクリプト ファイルへのパス、あるいは実行可能ファイルによって使用されるファイルへのパスを指定してください。

もう1つの多分バッチファイルが動かない!のをなんとかする方法 Edit

↑「開始(オプション)(T)」の設定でもいいのですが、
ようするに、作業ディレクトリを設定してやればいいわけですよね…。

…バッチファイルだけでもできるはず!
と思ったので例を書いてみました。

cd /D %~dp0

 : (後はいつもどおりに書いてください)
 :

"cd /D"でドライブごと作業ディレクトリ(カレントディレクトリ)を移動する。%~dp0 はバッチファイルで"実行したバッチファイルのディレクトリを得る"ことができます。

つまり、

cd /D %~dp0

と書くと、バッチファイルの置いてあるディレクトリに作業ディレクトリを移動して実行することができるはずです。

多分これでいいはず。ダメだったらダメ出しして下さい。

この辺のバッチファイルの特殊変数は、こちらのサイトが詳しいです。一度目を通しておくとよいです。あとこのwikiのバッチファイルのところも。

WSHとかJScriptでも似たようなことはできると思います。
ぜひチャレンジを!(すげー人任せ

実行時にバッチファイルのウインドウなどが表示されない Edit

これはバッチファイルやバッチから起動されたソフトが裏(バックグラウンド)で動いているためです。

表で動かしてUIを表示させるには、
プロパティの全般タブの「セキュリティオプション」にて、
「ユーザーがログオンしているときのみ実行する(R)」をチェックします。
これでOK。

わかりにくいのですが、これもヘルプに書いてあります。
以下ヘルプより引用

スケジュールされたタスクを実行するアカウントが、タスクがトリガされた時点でログオンしていない場合でもタスクを実行するように指定することができます。そのためには、[ユーザーがログオンしているかどうかにかかわらず実行する] をクリックします。このオプションが選択されている場合、タスクは対話的に実行されません。タスクを対話的に実行させるようにするには、[ユーザーがログオンしているときのみ実行する] をクリックします。


Show recent 10 comments. Go to the comment page.

  • はじめまして。
    ぽんすけと申します。

突然で大変申し訳ないのですが、
タスクスケジューラの「開始(オプション)」を自動で登録する方法などありますでしょうか?

schtasks.exeコマンドでは、「開始(オプション)」への登録ができなく、困っております。

大変ご迷惑だと思いますが、ご存知でしたら教えていただけないでしょうか? -- ぽんすけ? 2008-12-10 (Wed) 11:59:11

  • 検索してみましたが、該当の情報は得られませんでした。
    下記のサイトのスクリプトのようにカレントディレクトリを変更するwshかbatなりをかませた上で schtasks.exe に渡すのがアドホック(手っ取り早い、その場限りな)な解決法かと思います。
    しがない学生のブログ: Subversion まわりでごにょごにょ 2
    http://comutt.seesaa.net/article/99811597.html -- TOBY 2008-12-12 (Fri) 10:28:04
  • 「開始(オプション)(T)」ですね。助かりました。動かなくて1日悩んでいたところです。(^_^;) -- Yama? 2009-03-11 (Wed) 16:25:13
  • 開始オプション,,,,,絶対なんかおかしい。でも助かりました。ありがとうございます。 -- myr? 2009-03-25 (Wed) 08:27:41
  • 助かりました!VB2008でバッチを作ってタスクに登録したんですが、上手く動きませんでした。手動実行であれば上手く動いたんですが。開始オプションの設定で解決しました!ありがとうございます。 -- SSHR? 2009-06-11 (Thu) 20:33:17
  • ちょっとバッチファイルだけで作業ディレクトリを変更する方法を思いついたので、もう1つの多分バッチファイルが動かない!のをなんとかする方法を追加してみました。 -- TOBY 2009-06-12 (Fri) 15:41:48
  • 実行時にバッチファイルのウインドウなどが表示されない
    に悩んでました。助かりました。 -- 2010-06-01 (Tue) 17:26:38
Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2010-06-01 Tue 23:46:18 JST (94d)