2

何かを行うファイルがあり、ファイルを手動で実行すると正常に動作しますが、タスクスケジューラで設定すると実行されません。

バッチ ファイルは、Windows 7 のデスクトップのフォルダーにあります。

どんなフィードバックも役に立ちます。

このリンクソリューションが機能しなかったことも試しました。

4

3 に答える 3

3

ほとんどの場合、この場合、スクリプトが実行されるディレクトリ(「開始」)が正しく設定されていることを確認する必要があります。通常、これはスクリプトが含まれているのと同じディレクトリです。これは、スケジュールされたタスクのプロパティで設定できます。

于 2013-03-13T20:02:25.617 に答える
0

これが役立つかどうかはわかりませんが、何時間にもわたって次から次へと頭を悩ませていた結果、自分のバッチ ファイルがスケジュールされたタスクとして適切に機能するようになりました。その過程で私が学んだことのいくつか:

  1. スケジュールされたタスクを作成したユーザーである場合は、パスワードを使用してシステムにログインしたユーザーでもある必要があります。
  2. バッチ ファイル内のファイル名への参照は、ドライブ文字で始まる完全修飾パスの最後の部分である必要があります。
  3. [%flag%] EQU [0] のような比較を行う場合、「[」と「]」記号は、比較されるデータに含まれる文字列リテラルであることに注意してください。
  4. バッチ ファイルの一部で変数が設定され、変数を変更する予定のサブルーチンを呼び出す "FOR" ループが含まれている場合は、変数がバッチ ファイルのできるだけ早い段階で最初に初期化されていることを確認する必要があります。つまり、次のようなものです。

    IF ... (
      SET %flag=0
      FOR ... (CALL :subr)
      IF [%flag%] EQU [1] ( main scheduled-task command goes here)
    )
    GOTO :eof
    
    :subr
      IF ... (SET %flag=1)
    
    :eof
    

-- コマンド ラインから動作しましたが、スケジュールされたタスクとしてではありませんでした。%flag の初期化を最初の IF の前に移動する必要がありました。

于 2014-02-24T18:23:57.270 に答える
0

テストとして、.bat ファイルを基本的な権限を持つディレクトリ (共有ディレクトリなど) に移動してみてください。

私はあなたと同じ問題を抱えていました。私の .bat ファイルは、私のユーザー アカウントだけがアクセスできるように、いくつかの制限付きのアクセス許可を持つフォルダーに配置されていました。資格情報を使用するようにタスク スケジューラを設定したにもかかわらず、それでも失敗しました。.bat ファイルを別のディレクトリに移動すると、問題が解決されました。

于 2013-10-31T12:18:44.633 に答える