6

タスク スケジューラからのバッチ ファイルの実行は、.bat ファイル内の Java コマンドでは機能しません。.bat ファイルを手動で実行すると、正常に動作します。

スケジュールしようとしている単純な .bat ファイルを次に示します。

set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24;
set CMD= "%JAVA_HOME%\bin\java" -version

echo %CMD%
%CMD%
4

8 に答える 8

11

コマンドラインに入力すると、ファイルを読み取り、その中にある各行を実行するようにbatchfile.bat指示されます。cmd.exeエクスプローラーでバッチ ファイルをダブルクリックするcmd.exeと、レジストリ内のファイルの関連付けを読み取った後、呼び出しが行われます。

タスクマネージャーはあまり親切ではありません。

したがって、タスクを機能させるには、次のようにスケジュールします(現在、Windowsボックスではなく、メモリから):

cmd /c "c:\full\path\to\your\batchfile.bat"

さらに堅牢にするために、これを先頭に追加することにより、バッチファイルが存在するディレクトリなどの既知のディレクトリから実行されるようにすることができます。

pushd %~dp0
REM .... The original batch file goes here ....
popd

最後に、次のように/d直後に追加することで、CMD 自動実行エントリを無効にすることができます。cmd

cmd /d /c "c:\full\path\to\your\batchfile.bat"
于 2013-10-10T19:53:06.300 に答える
8

ixe013 の提案が機能しない場合は、

'Actions'
'Edit' the task
'Start in (optional):'  Put the path to the directory  where the script is

'C:\Users\Desktop\script.py' がある場合、最後の 1 つについては、'Start in (optional):' フィールドに 'C:\Users\Desktop\' を入力します。

于 2014-01-26T17:05:47.563 に答える
3

私にとってうまくいったのは、タスクを「ユーザー」( computername\Users )として実行することでした。それを行って、「最高の権限で実行する」にチェックを入れると、問題なく実行されました。

于 2014-07-22T21:46:06.507 に答える
1

バッチファイルに java.exe のフルパスを指定すると、修正されました。メモ帳に次の行を入力しました。

"C:\Program Files\Java\jdk1.8.0_40\bin\java.exe" -jar "C:\Users\usernameXXXX\Documents\NetBeansProjects\JavaApplication5\dist\JavaApplication5.jar"

これを app1.bat ファイル (C:\temp\app1.bat) として保存します。

タスク スケジューラの [アクション] タブで、バッチ ファイルへのパス (例: C:\temp\app1.bat) を指定します。また、タスク スケジューラの [条件] タブで注意してください。コンピュータは AC 電源に接続されています」

于 2015-03-24T17:10:25.997 に答える
0

他のすべての方法はうまくいきませんでした。このガイドに従いました: http://richardstk.com/2012/06/15/scheduled-task-to-run-a-batch-file/#comment-6873

バッチ ファイルを実行するには、[Program\script] ボックスにスクリプトの名前 (つまり、script.bat) だけが含まれるように設定し、[Start in] ボックスにスクリプトのフォルダー パスを設定する必要がありました。 (オプション)」ボックス

于 2015-08-13T10:42:41.837 に答える