Первый совет, который я предлагаю, это проверить, было ли его местоположение добавлено в реестр в соответствии с ассоциацией файлов с .RData
файлами. Если он найден, вы можете заменить RGui.exe
на RScript.exe
:
@Echo Off
SetLocal EnableExtensions
Set "Key=HKCU\Software\Classes\RWorkspace\Shell\Open\Command"
Set "RDir="
For /F "EOL=H Tokens=2*" %%G In ('%__AppDir__%reg.exe Query "%Key%" /VE 2^>NUL'
) Do Set "RDir=%~dpH"
If Not Defined RDir For /F "EOL=H Tokens=2*" %%G In (
'%__AppDir__%reg.exe Query "HKLM%Key:~4%" /VE 2^>NUL') Do Set "RDir=%~dpH"
If Defined RDir Where /Q "%RDir%.":"RScript.exe" && (
Set "RDir=%RDir%RScript.exe") || Set "RDir="
If Defined RDir Echo Your default RScript.exe absolute path is %RDir% & Pause
. Другими альтернативами могут быть проверка информации об удалении реестра для места установки, и, если обнаружено, добавьте подкаталог \bin
и соответствующий дочерний элемент архитектуры:
@Echo Off
SetLocal EnableExtensions
Set "Key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
Set "Sub=R for Windows"
Set "Val=InstallLocation"
Set "Reg=%__AppDir__%reg.exe"
Set "Find=%__AppDir__%find.exe"
Set "RDir="
For /F "EOL=H Tokens=2*" %%G In (
'"%Reg% Query "%Key%" /S /F "%Sub%" /K /V "%Val%" 2>NUL|%Find% "\""'
) Do Set "RDir=%%H"
If Not Defined RDir If Defined PROCESSOR_ARCHITEW6432 (
For /F "EOL=H Tokens=2*" %%G In (
'"%Reg% Query "%Key%" /S /F "%Sub%" /K /V "%Val%" /Reg:32 2>NUL|%Find% "\""'
) Do Set "RDir=%%H")
If Not Defined RDir GoTo :EOF
If "%PROCESSOR_ARCHITECTURE:~-2%" == "86" (
If Not Defined PROCESSOR_ARCHITEW6432 (Set "RDir=%RDir%\bin\i386"
) Else Set "RDir=%RDir%\bin\x64") Else Set "RDir=%RDir%\bin\x64"
Where /Q "%RDir%":"RScript.exe" && (Set "RDir=%RDir%\RScript.exe") || Set "RDir="
If Defined RDir Echo Your default RScript.exe absolute path is %RDir% & Pause
Также может быть стоит проверить, был ли выбран вариант установки Save version number in registry
в Select Additional Tasks
во время установки, (или позже, используя RSetReg.exe
или RSetReg.exe /Personal
) , затем, используя возвращенный путь к домашнему каталогу, чтобы добавить ваши подкаталоги:
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set "Reg=%__AppDir__%reg.exe"
Set "Find=%__AppDir__%find.exe"
Set "Key=HKCU\Software\R-core\R"
Set "Val=InstallPath"
Set "RDir="
For /F "EOL=H Tokens=2*" %%G In (
'"%Reg% Query "%Key%" /S /F "%Val%" /V 2>NUL|%Find% "\""') Do Set "RDir=%%~H"
If Not Defined RDir For /F "EOL=H Tokens=2*" %%G In (
'"%Reg% Query "HKLM%Key:~4%" /S /F "%Val%" /V 2>NUL|%Find% "\""'
) Do Set "RDir=%%~H"
If Not Defined RDir GoTo :EOF
If "%PROCESSOR_ARCHITECTURE:~-2%" == "86" (
If Not Defined PROCESSOR_ARCHITEW6432 (Set "RDir=%RDir%\bin\i386"
) Else Set "RDir=%RDir%\bin\x64") Else Set "RDir=%RDir%\bin\x64"
Where /Q "%RDir%":"RScript.exe" && (Set "RDir=%RDir%\RScript.exe") || Set "RDir="
If Defined RDir Echo Your default RScript.exe absolute path is %RDir% & Pause
Это было бы только в том случае, если один из этих методов не смог предоставить местоположение, я бы подумал о выполнении поиск исполняемого файла на системном диске или, возможно, на других доступных томах.