답변:
실제로 Windows에서는 Scheduler 를 사용하기 위해 배치 파일을 먼저 만들 필요조차 없습니다 .
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 창을 최소화하기를 원했기 때문에 최근에 배치 파일 사용을 다시 채택했습니다 (다른 방법을 찾을 수 없음).
특히 Actions
다음과 같이 Windows 작업 스케줄러 탭을 채 웁니다 .
Program/script:
cmd.exe
Add arguments (optional):
/ c 시작 / min D : \ mydocuments \ mytest.bat ^ & 종료
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"
에 대한 자세한 내용 은 이 웹 사이트 를 참조하십시오 SCHTASKS
. 자세한 내용은 Microsoft 웹 사이트를 참조하십시오 .
Windows 작업 스케줄러를 사용할 수 있습니다 .
작업 스케줄러 설정
1 단계) 작업 스케줄러 열기 (시작> 작업 스케줄러 검색)
2 단계) "작업"> "작업 생성"을 클릭합니다.
3 단계) "사용자가 로그온 할 때만 실행"을 선택하고 "가장 높은 권한으로 실행"을 선택 취소하고 작업 이름을 지정하고 "Windows Vista / Windows Server 2008"을 구성합니다.
4 단계) "트리거"탭에서 스크립트 실행시기를 설정합니다.
5 단계) "Actions"탭 아래에 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가 작동하도록 변경해야하는 또 다른 사항은 스크립트에서 파일 경로의 전체 파일 경로를 지정하는 것입니다.
이것은 작업 스케줄러에서 작동하지 않습니다.
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
됩니다.