回答:
実際には、Windowsでは、スケジューラを使用するために最初にバッチファイルを作成する必要はありません。
Rスクリプトがmytest.r
にあるとするとD:\mydocuments\
、次のコマンドを含むバッチファイルを作成できます。
C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r
次に、それを新しいタスクとしてWindowsタスクスケジューラに追加し、トリガー条件を設定します。
バッチファイルを省略することもできます。タスクスケジューラC:\R\R-2.10.1\bin\Rcmd.exe
のprogram/script
テキストボックスに設定し、Arguments
残りの初期コマンドとして次のように指定します。BATCH D:\mydocuments\mytest.r
Windowsタスクスケジューラを介したRタスクのスケジュール(2015年2月11日)
taskscheduleR:WindowsタスクマネージャーでRスクリプトをスケジュールするRパッケージ(2016年3月17日)
編集
cmdウィンドウを最小化したかった(別の方法を見つけることができなかった)ため、私は最近再びバッチファイルの使用を採用しました。
具体的には、WindowsのタスクスケジューラActions
タブに次のように入力します。
Program/script:
cmd.exe
Add arguments (optional):
/ c start / min D:\ mydocuments \ mytest.bat ^&exit
mytest.batの内容:
C:\ R \ R-3.5.2 \ bin \ x64 \ Rscript.exe D:\ mydocuments \ mytest.r params
Rscript
ことをお勧めしR BATCH
ます。小文字と大文字を区別できるシステムも取得r
します。
これを行うには、RStudioに組み込みオプションがあります。これは、スケジューラーを実行してパッケージの下に最初にインストールすることです。
install.packages('data.table')
install.packages('knitr')
install.packages('miniUI')
install.packages('shiny')
install.packages("taskscheduleR", repos = "http://www.datatailor.be/rcube", type =
"source")
インストールした後
**TOOLS -> ADDINS ->BROWSE ADDINS ->taskscheduleR -> Select it and execute it.**
SCHTASKS
プログラムを介してタスクを設定しました。起動時にスクリプトを実行するには、次のように記述します。
SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --vanilla d:\path\to\script.R"
の詳細については、このWebサイトを参照してくださいSCHTASKS
。詳細については、MicrosoftのWebサイトをご覧ください。
Windowsタスクスケジューラを使用できます。
タスクスケジューラの設定
手順1)タスクスケジューラを開きます([スタート]> [タスクスケジューラの検索])
ステップ2)[アクション]> [タスクの作成]をクリックします
手順3)[ユーザーがログオンしているときにのみ実行する]を選択し、[最高の権限で実行する]をオフにして、タスクに名前を付け、[Windows Vista / Windows Server 2008]を構成します。
ステップ4)[トリガー]タブで、スクリプトを実行するタイミングを設定します
手順5)[アクション]タブで、Rscript.exeファイルの完全な場所を配置します。
"C:\Program Files\R\R-3.6.2\bin\Rscript.exe" (include the quotes)
with -e
とsource()
in を使用してスクリプトの名前を次のようにラップします:
-e "source('C:/location_of_my_script/test.R')"
タスクスケジューラでスケジュールされたRscriptのトラブルシューティング
タスクスケジューラを使用してスクリプトを実行すると、エラーメッセージが表示されないため、問題のトラブルシューティングが困難になります。
これはsink()
、R の関数を使用して解決できます。この関数を使用すると、指定したファイルにすべてのエラーメッセージを出力できます。これを行う方法は次のとおりです。
# Set up error log ------------------------------------------------------------
error_log <- file("C:/location_of_my_script/error_log.Rout", open="wt")
sink(error_log, type="message")
try({
# insert your code here
})
Rscriptを機能させるために変更しなければならないもう1つのことは、スクリプト内のファイルパスの完全なファイルパスを指定することです。
これはタスクスケジューラでは機能しません。
source("./functions/import_function.R")
Rscript内でソースしているスクリプトの完全なファイルパスを指定する必要があります。
source("C:/location_of_my_script/functions/import_function.R")
これらの手順の組み合わせを実行した"Argument Batch Ignored"
後、R.exeの実行後にエラーが発生した場合は、これを試してみてください。
Windowsタスクスケジューラ:
BATCH "C:\Users\desktop\yourscript.R"
引数フィールドで置換
と
CMD BATCH --vanilla --slave "C:\Users\desktop\yourscript.R"
.R
であってないことを確認することだけを追加します.r
。