Я пишу небольшой скрипт на Ruby (в Windows XP), который должен проверить ENV для нескольких вещей (особенно, если несколько вещей установлены, и если они есть, если для них установлены правильные значения. Если нет, и еслиих нет, его нужно изменить и ENV или перезаписать значение. Например, если ENV ["CUSTOM_PATH"] не содержит C: \ some_program \ bin или его не существует, его необходимо добавить и / или изменить и ENVсохранено.
Просто чтобы уточнить - я хочу, чтобы изменение было постоянным и имело общесистемный эффект, а не только текущую сессию. В основном я пытаюсь создать ярлык для перехода в Мой компьютер -> Свойства -> Дополнительно -> Системные переменные -> Изменение нескольких из них вручную -> сохранить. Мне нужно делать это 5-6 раз в день, пока я работаю, и это довольно быстро раздражает: -)
У меня все получилось, кроме последней части - я не могу понять, как сохранить ENV БЕЗ обращения к командам оболочки.
Есть ли способ сделать это напрямую из ruby, а не из shell?
Спасибо!
ВОЗМОЖНОЕ РЕШЕНИЕ:
Как указано в принятом ответе - это невозможно сделать.Однако моя работа зависит от комбинации ruby и утилиты командной строки под названием SETENV.EXE , разработанной Винсентом Фатикой.Ему уже более десяти лет, но он отлично работает в Windows XP (пока не тестировал под Windows 7).Работает лучше, чем утилита setx, доступная от ms IMHO.Чтобы удалить вещи.
Вот краткий пример использования метода:
def switch_ruby_env
if RUBY_VERSION.match("1.8.7").nil?
`setenv -m CUSTOM_PATH " "`
else
`setenv -m CUSTOM_PATH -delete`
end
end