@echo off
setlocal
rem Install Cucumber
2>nul gem install cucumber -v 2.4.0
if %errorlevel% neq 9009 (
echo Cucumber install did not error code 9009.
exit /b 0
)
rem Get Ruby path.
call :query_rubypath
if errorlevel 1 (
echo Installing Ruby.
rubyinstaller-2.5.1-2-x64.exe /verysilent
call :query_rubypath
)
rem Update PATH
if defined rubypath (
if "%path:~-1%" == ";" (
set "path=%path%%rubypath%\bin"
) else set "path=%path%;%rubypath%\bin"
) else (
>&2 echo Ruby path not found.
exit /b 1
)
rem Use command gem or command "%rubypath%\bin\gem"
@rem "%rubypath%\bin\gem" install cucumber -v 2.4.0
gem install cucumber -v 2.4.0
if %errorlevel% == 9009 (
>&2 echo Cucumber error code 9009.
exit /b 1
)
exit /b
:query_rubypath
rem Get Ruby path from registry
set "rubypath="
for /f "tokens=1,2,*" %%A in ('
reg query HKCU\Software\RubyInstaller\MRI\2.5.1
/v InstallLocation
2^>nul
') do if /i "%%~A" == "InstallLocation" set "rubypath=%%~C"
if not defined rubypath exit /b 1
exit /b 0
Установщик rubyinstaller-2.5.1-2-x64.exe
компилируется с Inno Setup version 5.5.9 (u)
.
Установка может быть выполнена с помощью Параметры командной строки установки .
По умолчаниюкомпоненты ruby
выбраны, а msys2
отменены.При переустановке программа установки прочитает записи об удалении, чтобы определить состояние установленных компонентов, чтобы выбрать, если не указан параметр /COMPONENTS
.
При автоматической установке вы можете использовать, например:
rubyinstaller-2.5.1-2-x64.exe /verysilent /COMPONENTS="ruby,msys2"
Параметр /COMPONENTS
является необязательным.
Переменная среды PATH обновляется с помощью:
C: \ Ruby25-x64 \ bin
Это будет путь установки по умолчанию для %systemdrive%
.Сценарий найдет фактический путь из реестра.
Важные ключи реестра:
HKEY_CURRENT_USER\Software\RubyInstaller\MRI\2.5.1
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\RubyInstaller-2.5-x64-mingw32_is1
Код call :query_rubypath
получит путь установки дляРубин.Переменная с именем rubypath
будет хранить значение, если оно определено.
Как установить Ruby , как вы упомянули, это предпочтение.В любом случае, сценарий будет обрабатывать большую часть базовой обработки.
- Сценарий найдет путь установки, чтобы можно было выполнить команду
gem
. - Ruby будетустанавливается, если путь установки не найден.
Если вы хотите установить Ruby, даже если путь установки найден, удалите условие if errorlevel 1
.Внесите изменения, необходимые для вашей среды.