web-dev-qa-db-ja.com

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

Daily.batというバッチファイルがあります。これがコードです。

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

Windows 7でタスクスケジューラを使用してタスクを作成しました。手動でバッチを実行しても問題はありませんが、タスクスケジューラを使用して実行しようとしても何も起こりません。

私の行動は

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"

UACがオフになっていて、私は管理者です。

なぜこれがうまくいかないのですか?

130
Ruben

私は同じ問題に直面しました、しかし私は私のバッチスクリプトを修正する必要なしで別の解決策を見つけました。

私が見逃したのは、「アクション」設定 - 「開始(オプション)」オプションだけです。

タスクのプロパティ - >アクションタブ - >編集 - >以下のように入力します。

  1. 対処:プログラムを起動してください
  2. プログラム/スクリプト:バッチスクリプトへのパス。 C:\Users\beruk\bodo.bat
  3. 引数を追加する(オプション):<必要なら - スクリプトによっては>
  4. Start in(optional):バッチスクリプトの場所へのフルパスを入力してください。 C:\Users\beruk\(Start Inを引用符で囲まないでください)

次にOKをクリックします

わたしにはできる。がんばろう!

241
Ghazi

上記の方法はどれもうまくいきませんでした。私はチュートリアルでそれを言ったように私はこの方法でそれを試してみました、そしてそれはうまくいきました。

処置:プログラムを起動してください。

プログラム/スクリプト:cmd

引数を追加します。
/c start "" "E:\Django-1.4.1\setup.bat"

Win7 Proで私のために働きました。あなたはパスワードを持つアカウントを持っている必要があります(空白のパスワードはダメです)

44
Arun Raja

Windows 8+タスクスケジューラでbatファイルがまだ動作していない人のために、私がGhaziの答えに追加したい1つのこと - 多くの苦しみの後に:

1)[Actions]で、[Create Task]ではなく[Create BASIC task]を選択します。

それは私のためにそれをやった、さらに忘れないように他の問題:

  1. オプションと表示されていても、バッチファイルへのStart Inパスを使用します。
  2. 必要に応じて引用符を使用プログラムの開始> program/scriptエントリ、つまり "C:\ my scripts\runme.bat"に...
  3. ただし、引用符を使用しないでくださいあなたのStart inフィールドに。 (クレイジーだけど本当だ!)

これは、コマンドプロンプトを起動する必要なしに機能しました。

(すみません、私の担当者はGhaziのコメントに私の基本的なタスクのヒントを追加するには低すぎます)

37
micstr

"Start In"に引用符がないことを確認してください。

20
Jonathan

それは今働いています。これが私がしたことです。あなたはそれをうまく動かすためにこれらすべてのステップを必要としないかもしれませんが、ただそれらすべてを試すことを確かめるために:

  • スケジュールされたタスクのアカウントパラメータを確認し、誰かがマシンにログインしているかどうかにかかわらず実行されるように設定されていることを確認します。

  • ほとんどの特権/権限で実行を確認してください

  • 必ずフルパスを使用してください。cd C:\ inetpub\wwwroot\infoweb\factuur\cron

  • バッチファイルで二重引用符を使用しないでください(理由はわかりませんが、役に立つようです)。

  • スーパー管理者になり、コマンドプロンプトで「Net User administrator/active:yes」と入力し、スーパー管理者としてログアウトしてログインします。UACはオフです。

7
Ruben

単に電源コードなしでラップトップで実行されていたためにタスクが実行されなかったという問題がありました。[条件]タブでは、デフォルトではチェックされています。

5
Chriz

私はこれに数時間戸惑い、さまざまな提案を試みました。

私はついに次のようにしてうまくいくようになった。

処置:プログラムを起動してください。

プログラム/スクリプト:C:\ scriptdir\script.bat

引数を追加する(オプション)script.bat

で起動します(オプション):c:\ scriptdir

ユーザーがログインしたときにのみ実行

最高の特権で実行する

windows Vista、Windows Server 2008用に構成します。

3
Robb

Windows 7 Proの下で、私はArunの解決策が私のために働いていることに気付きました:私は「ユーザーがログオンしていなくても」これを動作させることができました。

過去の経験から、あなたはパスワードを持つアカウントを持っていなければなりません(空白のパスワードはダメです)、そしてあなたがウィザードを終了したときにプログラムがパスワードの入力を促さなかったら

どちらがうまくいったのか明確でない場合の方法です。

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 
3

"Start In"がバックスラッシュで終わっていないことを確認してください。

2
Michael Kehoe

残りがすべて失敗した場合は、ここでタスクを実行しようとしているユーザーが、使用しようとしているファイルにアクセスできることを確認してください。

私の場合、C:\ Users\Administrator\Desktopからアカウントにアクセスできないバッチファイルを実行しようとしていました。 C:\の中立的な場所に移動すると問題は解決しました。

2
Vince
  1. Cmd/batchファイルで二重引用符を使用しないでください
  2. 必ずフルパスから始めてください(オプション)
    C:\ Necessary_file\Reqular_task\QDE\cmd_practice \

enter image description here

タスクを実行するためにどのユーザーアカウントを使用しているかを確認してください。デフォルトのユーザーとは別のユーザーでタスクを実行すると、このユーザーに追加の特権が必要になることがあります。また、タスクが実行されることもありますが、バッチファイルがユーザーの応答を待つため、効果が見られない場合があります。プロセスが実行されている場合は、タスクマネージャを確認してください。一度私はいくつかのWebページのSVN更新とバッチをスケジュールし、SVNがサーバー証明書を受け入れるように要求したためにプロセスがハングアップすることが起こる。

1
user6039542

タスクスケジューラのメインウィンドウの[実行]ボタンを使用していくつかのバリエーションをテストしたところ、最終的に正しい設定が見つかりました。この2つのオプションを組み合わせる必要があります。 - ユーザーが最高の特権でログオンしている場合にのみ実行します。他のすべてのバリエーションは失敗しました。それはこれで無駄にしている時間をずっと刺激しています、しかし少なくともそれはうまくいきます。 OS:WINDOWS 8 CORE(BASIC)VERSION

0
sapitron

高い権限でタスクを実行してください。

c:\ temp \のように、 "フォルダの開始"のパスの最後に\を付けます。

私はその理由を知りませんが、これは時々私のために働きます。

0
C Jee