我正在尝试运行从批处理文件启动的一些R代码。 R代码使用odbcDriverConnect
库中的RODBC
函数从Access数据库中提取信息。如果我在R中启动R代码,则可以使用R代码,但是如果尝试从批处理文件调用该代码,则该代码将失败。
我认为问题是ODBC调用的连接字符串指向共享的网络,在运行批处理文件时将不会映射该共享的网络。我试图使用UNC路径(批处理文件中不支持?),并尝试在批处理文件中使用pushd
来临时映射所需的驱动器。这两个选项均未成功运行。任何帮助或指导将不胜感激!
为简单起见,我目前将批处理和R代码存储在本地C:
驱动器上,共享网络驱动器上的唯一项是在R中调用Access数据库。
(匿名)批处理代码和R代码复制如下。谢谢!
批次:
pushd \\Server\Path
"C:\Program Files\R\R-3.4.3\bin\Rscript.exe" "C:\Testing\r_test.R"
R:
library(RODBC)
accessDB <- odbcDriverConnect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=Z:/Path/Database.accdb")