我想在批处理文件上使用一个目录路径,该路径将从人变为人(它位于共享文件夹中),并且需要访问一个祖父文件夹。
现在我有以下内容:
"%CD%\R\R-3.4.2\bin\i386\R.exe" CMD BATCH "%CD%\run.R"
当R文件夹与run.R文件位于同一级别时,此方法有效。但现在我想使用以下结构:
-R
-dashboards/folder1/run.R
即,R文件夹和仪表板文件夹位于同一级别,run.R在仪表板文件夹下面两级。
我要求帮助将正确的目录转到批处理文件中的R文件夹。
提前致谢
答案 0 :(得分:0)
如果您在Windows批处理文件中将代码放在此答案的末尾,它将运行run.R
,前提是
用户可以选择通过定义R_HOME批处理变量来指定R的位置,以指向当前版本的R
set R_HOME=C:\Program Files\R\R-3.4.1
... now run batch file ...
如果R不在注册表中,或者他们有多个R版本并且不想使用当前注册的R,他们可能想要这样做。在通常的情况下,没有必要。
这有效地解除了R的位置和run.R的位置,使其可以独立于R的位置放置在任何位置。
@echo off
setlocal
if not defined R_HOME for /f "tokens=2*" %%a in (
'reg query hklm\software\wow6432Node\r-core\r /v InstallPath 2^>NUL ^| findstr InstallPath'
) do set R_HOME=%%~b
"%R_HOME%\bin\R" BATCH run.R