it-swarm-ja.com

Windows7のタスクスケジューラはMatlabスクリプトを実行しません

Windowsタスクスケジューラを使用して、Matlabスクリプトを毎日実行しようとしています。 Matlab R2011b64ビットとWindows7を使用しています。Matlabによると、スクリプトmyfile.mは、次のようにコマンドラインから実行できます。

matlab -r myfile

古いコンピューター(32ビットXP)では、XPタスクスケジューラの[実行]ウィンドウに次のように入力することで、スクリプトを実行できます。

C:\PROGRA~1\MATLAB\R2010a\bin\matlab.exe -r myfile;quit

しかし、新しいコンピューターのWindows 7タスクスケジューラで次のように入力すると、タスクはキューに入れられたままになり、実行されません。

C:\PROGRA~1\MATLAB\R2011b\bin\matlab.exe -r myfile;quit

「ユーザーがログオンしている場合にのみ実行する」を選択すると実行できることがわかりましたが、「ユーザーがログインしているかどうかに関係なく実行する」必要があります。 matlab.exeのプロパティの下に、管理者がフルコントロールを持っていると表示され、現在管理者アカウントでログインしているため、問題が何であるかを理解できません。助言がありますか?あるいは、これらの問題に遭遇したことがないので、Windows 7でXPバージョンのタスクスケジューラを実行することは可能ですか?

2
KAE

次の手順を使用して動作します。

  1. タスクスケジューラで、[タスクの作成...]をクリックします。
  2. 名前やトリガー時間などを設定します。
  3. [アクション]タブで、[新規...]をクリックします。 「アクション」は「プログラムの開始」として保持する必要があります。
  4. 「プログラム/スクリプト」の場合は、「参照...」を使用してMatlab実行可能ファイルを検索します。Matlab実行可能ファイルは、"C:\Program Files\MATLAB\R2011a\bin\matlab.exe"のような値を設定する必要があります。
  5. 引数を-r scriptname;quitに設定します。スクリプト拡張の場合は、.mは必要ありません。
  6. 「Startin」の値を、スクリプトファイルを含むディレクトリとして設定します(例:C:\Folder)。
2
sblair

PROGRA〜1の代わりに実際のディレクトリ名を使用することをお勧めします。これは、FATの下位互換性のためだけです。

3
m0skit0