我试图通过.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')
答案 0 :(得分:3)
我不是Windows的专家,并且通常会尝试坚持使用类似Unix的系统,但我发现通常非交互式使用程序(例如通过.bat
文件)将适当的目录添加到(用户)PATH
变量时,而不是cd
进入目录并从.bat
文件中调用可执行文件时,更不容易出错。例如,我的用户PATH
变量包含C:\PROGRA~1\R\R-3.0\bin\;
- 包含R.exe
和Rscript.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
之前:
运行test_r.bat
后:
我从未使用过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服务器上成功运行的屏幕截图:
注意:我将cmd /k
添加到.bat文件中,以便在单击文件后cmd窗口保持打开状态。