Windows の場合、以下のようなバッチ ファイルでセットアップされた何百ものスクリプトがあります。aNameOfScript.bat
と aNameOfScript.r
が同じフォルダーにあり、Scheduler から .bat ファイルを実行すると、stdout/err からNameOfScript_yyyy-mm-dd.log
同じフォルダーにすべてのログが記録されます。私は通常、ログフォルダーを別々に持っていますが、それを追加するには、の定義を変更するだけで済みLOG_FILE
ます。また、フォルダー内のいくつかのファイルを出力する必要がある場合に備えて、フォルダーを R に渡します。
IF DEFINED ProgramFiles(x86) (
SET R_SCRIPT="%ProgramFiles(x86)%\\R\\R-2.15.2\\bin\\Rscript.exe"
) ELSE (
SET R_SCRIPT="%ProgramFiles%\\R\\R-2.15.2\\bin\\Rscript.exe"
)
IF NOT EXIST %R_SCRIPT% GOTO FAIL
SET SCRIPT_DIR=%~dp0
SET SCRIPT_DIR=%SCRIPT_DIR:\=\\%
SET BATCH_FILE=%0
SET BATCH_FILE=%BATCH_FILE:"=%
SET SCRIPT_TO_RUN="%BATCH_FILE:.bat=.r%"
SET day=%DATE:~0,2%
SET month=%DATE:~3,2%
SET year=%DATE:~6,4%
SET yyyymmdd=%year%-%month%-%day%
SET LOG_FILE="%BATCH_FILE:.bat=%"_%yyyymmdd%.log
SET SCRIPT_DIR="%SCRIPT_DIR%"
%R_SCRIPT% --internet2 --max-mem-size=2047M --no-restore --no-save --args %SCRIPT_DIR% < %SCRIPT_TO_RUN% >> %LOG_FILE% 2>&1
PAUSE
EXIT /B 0
:FAIL
ECHO RScript not found. Failed process