2017-12-20 32 views
0

배치 파일에는 사람 (사람들이 공유 폴더에 있음)에서 바뀌는 디렉토리 경로를 사용하고 그랜드 부모 폴더에 액세스해야합니다.은 배치 파일 디렉토리의 한 레벨 위로 올라갑니다.

는 지금은 다음과 같습니다

"%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 폴더에 올바른 디렉토리에 대한 도움을 요청하고 있습니다. 당신이 Windows 배치 파일에서이 답변의 끝 부분에 코드를 삽입하는 경우 사전에

덕분에

+2

의 위치를 ​​어디서나 독립적으로 배치 할 수 있도록 run.R의 위치를 ​​분리한다. 두 번'..'는 상위 폴더를 나타냅니다. 따라서 .. .. \ ..는 조부모를 나타냅니다. – Squashman

+0

@ 스쿼시맨 일해 주셔서 감사합니다. –

답변

0

run.R

  • run.R는 현재 디렉토리와
  • 에 있음을 제공 실행됩니다
  • R이 레지스트리에서 참조됩니다 (기본 R 설치의 경우)

선택적으로 사용자는 R의 위치를 ​​지정할 수 있습니다 R_HOME 배치 변수를 정의하여 그들은 R이 레지스트리에 경우 또는없는 경우가 R의 여러 버전이 있으며를 사용하지 않는 것이 수행 할 수 있습니다

set R_HOME=C:\Program Files\R\R-3.4.1 
... now run batch file ... 

R의 현재 버전을 가리 키도록 현재 등록 된 일반적인 경우에는 그렇게하지 않아도됩니다.

이 효과적으로 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