I am running a batch file (.bat) to run an R script which works fine. My batch file is ran daily with my task manager. What I am trying to do now is figure out how to pause my batch file if the condition in R script stops the R script.
My batch file:
#echo off
"C:\Program Files\R\R-3.5.2\bin\Rscript.exe" C:\Auto_R_Reports\Codes\SICK_WTGs.R
My R script:
if(NROW(Sick_WTG_USA) == 0){
stop('NO SICK WTGs')
} else {source("./Codes/2WKcheck.R")}
The idea is that when the if condition in R script evaluates true and my R script stops, I also want my batch file to pause so that I know it stopped and paused.
Related
I wanted to use a Windows .bat file to run several R scripts and schedule it using windows scheduler.
However, when I test using windows scheduler, everything executes but the files that the R scripts should create are never created. Instead, when I double-click on the .bat file itself it works fine. My goal is for several scripts to just run overnight without me going in and running each one of them manually one-by-one.
If I were to add a second line to the .bat file that would make it run a second script, would this execute only after the first is complete? If not, would I be able to delay the second until the first finishes somehow?? For instance, my .bat file looks like this:
"C:\Program Files\R\R-3.4.2\bin\x64\R.exe" CMD BATCH C:\Users\gma\Desktop\R_Task\script1.R
"C:\Program Files\R\R-3.4.2\bin\x64\R.exe" CMD BATCH C:\Users\gma\Desktop\R_Task\script2.R
I used the answer provided by #Gautam (R taskscheduleR not executing script) to get this far
I have scheduled an RScript to run via the TaskScheduler but there seems to be an error occurring in the code which does not occur when I run the code manually.
Is there a way I can output the RScript log into a separate file so I can then debug?
I am attempting to run a saved R script using Windows Task Scheduler. When I run it it fails. In an attempt to troubleshoot the problem I created a small test R script
test <- function(){
print("test")
}
test()
I then create a small bat file with
"C:\R\R-3.4.4\bin\R.exe" "C:\Test.R"
When I attempt to manually run that .bat file R in the cmd line opens but its initial message is
"C:\R\R-3.4.4\bin\R.exe" "C:\Test.R"
ARGUMENT "C:\Test.R" __ignored__
and the script does not run.
I have a .bat file as follows. task.bat
#echo off
R CMD BATCH C:\Users\Raghavan\Desktop\MyTask.R
The file needs to run an R script. The following is the R script.
A<-read.csv("C:\Users\Raghavan\Desktop\A.csv")
write.csv(A, file = "B.csv")
The R script runs by itself. However, when I try running it through the .bat file or through windows scheduler, the script fails to run. I have tried many sites.I request someoen to see if this error can be fixed. Most likely, the error is in the .bat file
I run my R files with the following command inside of the .bat script:
#echo Off
"C:\Program Files\R\R-3.4.2\bin\R.exe" CMD BATCH --vanilla --slave "C:\File.R"
Define the full paths to executable R and to the file that you wanna run. Hope this helps.
See also ?BATCH and this resource on arguments of R CMD BATCH.
I made the following edits to the code.
# echo off
"C:\Program Files\R\R-3.3.2\bin\R.exe" R CMD BATCH "D:\Newfolder\task1.R"
The files were then shifted to the D drive. This resulted in the code working.
I am trying to run a .bat file, which does run perfectly when I double click in it (Windows OS), but fails when I try to run it in R
com <- "C:\\SASLocal\\RUN3614\\56a8c11b-84b2-4af7-a155-01190936b1c1\\M1_superGOtest.bat"
system(com)
I am getting back a message of had status 2
Just an FYI, this triggers a SAS program, which I need to run in SAS as it is for comparison purposes between SAS and R.
In Windows, to run batch files from command line you need to call a command line interpreter, Command Prompt or PowerShell, passing batch file as an argument.
A .bat script by itself is like an .R script and does not do anything until an executable runs it (i.e., Rscript.exe, R.exe, Rcmd.exe, Rterm.exe) and in this case, cmd.exe and powershell.exe:
# COMMAND PROMPT
system('cmd /c "C:\\SASLocal\\RUN3614\\56a8c11b-84b2-4af7-a155-01190936b1c1\\M1_superGOtest.bat"')
# POWERSHELL
system('powershell -c & "\'C:\\SASLocal\\RUN3614\\56a8c11b-84b2-4af7-a155-01190936b1c1\\M1_superGOtest.bat\'"')