无法通过Windows Server中的.bat文件运行R脚本

时间:2015-02-01 14:25:27

标签: r batch-file

我试图通过.bat文件运行R脚本。当我自己运行命令时,它可以正常工作。但是当我尝试运行.bat文件时,它不起作用。

这是.bat文件

cd "C:\Program Files\R\R-3.1.2\bin"
R CMD BATCH "C:\Users\Administrator\Downloads\testa_vps.R"

这是R脚本

setwd('C:\Users\Administrator\Documents')
file.create('mycsv.csv')

2 个答案:

答案 0 :(得分:3)

我不是Windows的专家,并且通常会尝试坚持使用类似Unix的系统,但我发现通常非交互式使用程序(例如通过.bat文件)将适当的目录添加到(用户)PATH变量时,而不是cd进入目录并从.bat文件中调用可执行文件时,更不容易出错。例如,我的用户PATH变量包含C:\PROGRA~1\R\R-3.0\bin\; - 包含R.exeRscript.exe的目录 - (其中PROGRA~1是别名Program Files,您可以在不带引号的文件路径中使用它,因为名称中没有空格)。

执行此操作后,您可以通过在新的命令提示符中键入PATH来检查Rscript修改是否成功 - 它应打印Rscript的使用信息,而不是典型的xxx is not recognized as an internal or external command...错误消息。

在目录C:\Users\russe_000\Desktop\Tempfiles中,我创建了test_r_script.r,其中包含

library(methods)
setwd("C:\Users\russe_000\Desktop\Tempfiles")
file.create("mycsv.csv")

test_r.bat,其中包含

Rscript --vanilla --no-save "C:\Users\russe_000\Desktop\Tempfiles\test_r_script.r"

单击Windows批处理文件test_r成功运行该过程并在正确的文件夹中生成mycsv.csv


在运行test_r.bat之前: enter image description here


运行test_r.bat后: enter image description here


我从未使用过Windows服务器,但我不明白为什么这个过程与个人电脑有根本的不同;如果您没有足够的权限来更改环境变量,则可能需要您的系统管理员修改PATH变量。

答案 1 :(得分:0)

正如@nrussel在评论中已经建议的那样,您应该使用RScript.exe

使用以下内容创建文件launcher.bat

cd C:\Users\Administrator\Documents
Rscript testa_vps.R

此外,将C:\Program Files\R\R-[your R version]\bin\x64;C:\Program Files\R\R-[your R version]\bin\i386添加到Environment Variables菜单中的系统PATH变量,具体取决于您是在64位还是32位系统上运行R

我刚刚在Windows Server 2008 64位系统上成功测试了上述方法,并按预期创建了mycsv.csv

修改

我忘记提及的一个要点如下:您需要使用setwd()代替\\\来电中指定R档案中的路径。

setwd('C:\\Users\\Administrator\\Documents')

以下是Windows 2008服务器上成功运行的屏幕截图:

enter image description here

注意:我将cmd /k添加到.bat文件中,以便在单击文件后cmd窗口保持打开状态。