何かを行うファイルがあり、ファイルを手動で実行すると正常に動作しますが、タスクスケジューラで設定すると実行されません。
バッチ ファイルは、Windows 7 のデスクトップのフォルダーにあります。
どんなフィードバックも役に立ちます。
このリンクソリューションが機能しなかったことも試しました。
何かを行うファイルがあり、ファイルを手動で実行すると正常に動作しますが、タスクスケジューラで設定すると実行されません。
バッチ ファイルは、Windows 7 のデスクトップのフォルダーにあります。
どんなフィードバックも役に立ちます。
このリンクソリューションが機能しなかったことも試しました。
ほとんどの場合、この場合、スクリプトが実行されるディレクトリ(「開始」)が正しく設定されていることを確認する必要があります。通常、これはスクリプトが含まれているのと同じディレクトリです。これは、スケジュールされたタスクのプロパティで設定できます。
これが役立つかどうかはわかりませんが、何時間にもわたって次から次へと頭を悩ませていた結果、自分のバッチ ファイルがスケジュールされたタスクとして適切に機能するようになりました。その過程で私が学んだことのいくつか:
バッチ ファイルの一部で変数が設定され、変数を変更する予定のサブルーチンを呼び出す "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 の前に移動する必要がありました。
テストとして、.bat ファイルを基本的な権限を持つディレクトリ (共有ディレクトリなど) に移動してみてください。
私はあなたと同じ問題を抱えていました。私の .bat ファイルは、私のユーザー アカウントだけがアクセスできるように、いくつかの制限付きのアクセス許可を持つフォルダーに配置されていました。資格情報を使用するようにタスク スケジューラを設定したにもかかわらず、それでも失敗しました。.bat ファイルを別のディレクトリに移動すると、問題が解決されました。