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

Windows/Vista/タスクスケジューラーでバッチファイルを実行する方法

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


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


    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
  • 「開始(オプション)」助かりました!Windows2003のときはschtasks.exeで自動的に設定されていたような気がするのですが。。。1日中はまっていました。ありがとうございます! -- ちぃ公? 2010-09-10 (Fri) 16:48:47
  • リダイレクトとかでファイル出力するバッチを対話的に流すとファイル出力されるのに、セキュリティオプション:[ユーザーがログオンしているかどうかにかかわらず実行する]にするとファイル出力されない現象に悩みました。


    出力ファイルを消しておいてからタスクを実行するとその後も上書きされるのですが、対話的に作ったファイルに対しては上書きされないのが原因でした。


    開きっぱなしにしてロックしているわけでもないので謎過ぎですが・・・。 -- Windows2008R2? 2011-01-14 (Fri) 15:14:14
    • なんだろう…。考えられる原因としては、
      ・Administratorということであれば「最上位の特権で実行する」にチェック入ってないと書き込めない(対話的で作ったファイルを上書きできない)とか。
      ※この権限周りは詳しくないのでできれば詳しい人に聞いて欲しいです
      参考:
      noteメモ
      タスクのセキュリティ コンテキストに対して Administrators グループを使用してタスクが登録されている場合、タスクを実行するには、[最上位の特権で実行する] チェック ボックスがオンになっていることも確認する必要があります。
      via: タスクのセキュリティ コンテキスト
      ・Windows以外のセキュリティ関係のツールのせいとか
      (例:HIPS系の機能がある、なんとかセキュリティみたいなツールをインストールしていて、タスクスケジューラ経由のバッチファイルのファイル書き込みの許可が出されていない)
      →こちらで実際に似たことがあってバックアップが止まっていたことあります(;; ´д`)。。
      ・実際は実行されていない。
      リダイレクト以前に実はバッチが上二つの理由もしくは、何らかの別の理由で実行されていないとか。
      (バッチが本当に実行されているか、別の手段で確認が必要)
      ・Vistaと2008の挙動が違っていて、このサイトの記事の内容が当てはまらないとか


      Windows2008R2さんが勘違いされているという前提の原因ばかり上げてちょっとしょうがない感じがありますね…うーん -- TOBY 2011-01-14 (Fri) 18:27:23
  • ちなみに対話的作成もバッチ実行もドメインのAdministratorだったのでアクセス権絡みではなさそうです。 -- Windows2008R2? 2011-01-14 (Fri) 15:16:41
  • こちらでも Windows Server 2008 R2 のタスク登録ではまっています。
    もともと夜間処理でセキュリティをあげるため、ログオンせずにバッチ処理を実行しようとしています。
    ここでバッチ途中で確認メッセージを出された場合、画面がないため対応しようがありません。
    「ユーザーがログオンしているときのみ実行する」では要件に合いません。
    困ったものです。 -- 流しのインストーラ? 2011-08-11 (Thu) 14:11:18
    • こんにちは、コメントありがとうございます。 ここで書いているのは、
      「デスクトップPCで、ちょっとした定期的なコマンドラインアプリのバッチ処理の進行具合を手軽にみたい」
      「実機でログイン、もしくはリモートデスクトップでログインして見られればいい」
      くらいを想定して書いているのでWindows Serverでの用途のようなちゃんとしたバックグラウンド処理は想定していません。業務での利用方法を公開しているような専門的なサイトを見てもらったほうがいいと思います(前者の想定はWindows Vistaというページ名で伝わってるかも、伝わってないかも…)、
      それを踏まえた上で、対処を考えてみると、


      ・確認処理は出さないようにあらかじめしておく
      ・進行具合はOSのイベントログを残す(エラーログはメールで通知するとか)


      などが考えられると思います -- TOBY 2011-08-11 (Thu) 17:30:33
  • Windows7で同じようにハマリ、「開始(オプション)(T)」に作業ディレクトリを入力することで解消しました。ありがとうございました。
    参考までに、構成を「Windows VISTA…」にすると設定しなくても動きました。 -- 2011-11-07 (Mon) 18:14:09
  • バッチファイルが動かない!のをなんとかする方法を参考にさせていただきましたが実行せず。 教えてください。
    os : Windows.Server2008 Standard
               操作の編集 プログラム/スクリプト "c:windows\sytem32\shutdown.exe"
               引数の追加(オプション)(A)  "-s -t 60 -f"
               開始(オプション)(T)  c:windows\system32
    としました。
    全般 ユーザーがログオンしているかどうかにかかわらず実行する。をチェック
    履歴をみると "インスタンスを正常に完了しました" と表示されているのですが、シャットダウンできません。
     作業ディレクトリを入力の仕方が悪いでしょうか? -- 悩むflag? 2012-01-12 (Thu) 17:20:56
    • c:\windows\system32 -- 2012-01-14 (Sat) 00:04:49
    • すいません入力ミスありました。これで実行しました。
       操作の編集 プログラム/スクリプト "c:\windows\sytem32\shutdown.exe" 
       引数の追加(オプション)(A)  "-s -t 60 -f"
       開始(オプション)(T)  c:\windows\system32
      -- [[悩むflag]] &new{2012-01-17 (Thu) 15:44:00};
  • "cd"では作業ディレクトリが切り替わらないので"タスクスケジューラ cd"で検索してここにたどり着きました -- 2012-04-22 (Sun) 18:40:23
  • ぐぐってヒットしたのがここだった。サンキュー。 -- toyman? 2012-06-05 (Tue) 23:41:47
  • バッチファイルの実行に関して、質問させてください。
    現在作成したバッチファイルをWindows7上でうまく動きます(コマンドプロプトン、ダブルクリック、スケジューラ)が、windows 2008R2(AD機能)で起動しないです。コマンドプロプトンで【test.bat】Enterキー押すと”操作可能なプログラムまたはバッチ ファイルとして認識されていません”というメッセージが出ます。環境変数のPATHTEXTに".BAT"の記述はあります。スケジューラで実行されるみたいですが、リターンコードは1で、バッチファイルの内容は実行されていないようです。ダブルクリックしても、ほしい結果がでません。結構困っています。解決方法があれば、ご教授ください。 -- monster? 2012-06-07 (Thu) 10:48:44
    • Windows serverとAD機能の固有の問題についてはわからないのと、業務で使いたいのであれば、Microsoftのサポートに問い合わせるか、technetのフォーラムなりで聞かれるのがよいかなーと思います。 http://social.technet.microsoft.com/Forums/ja-jp/category/windowsserver
      それを踏まえたうえで…
      環境の違いがわからないので「PATHが通ってない」かもといった無難なことは助言できます。
      この記事を書いたVistaのころは「UACでコマンドプロンプトを開いて、実行しようとすると作業ディレクトリが変わるため初見はコマンドがないように見える」といった問題がありました。似たようなことがあるかも知れません。
      (この記事の内容だと cd /D %~dp0 で対処できるかな?パスに空白が含まれるとそのままだと動かないかも) -- anonymous? 2012-06-08 (Fri) 16:46:08
  • とても助かりました。ありがとうございます -- taddy? 2012-10-30 (Tue) 12:25:03
    • >「開始(オプション)(T)」助かりました!オプションで書いてあるのに!w -- 2014-08-02 (Sat) 10:58:17
  • 助かりました。ありがとうございました。 -- 2013-02-05 (Tue) 10:55:07
  • タスクエラーがでて困ってたところにこちらにたどり着きました。作業ディレクトリを入れたらバッチリ動きました。ありがとうございます! -- 通りすがり? 2013-02-15 (Fri) 17:30:34
  • >「開始(オプション)(T)」に作業ディレクトリを入力しておけばOKです。

自分もこれでした・・・。
めっちゃ助かりました!
ありがとうございます! -- みすた? 2013-03-06 (Wed) 09:21:14

  • xp機の更新で困ってここへたどり着きました。
    助かりました。ありがとうございました。 -- つや? 2014-04-15 (Tue) 20:24:13
  • 助かります。 -- ヤマヤタケシ? 2015-02-18 (Wed) 14:02:33

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2015-02-18 Wed 14:02:35 JST (703d)