Получить RAW-содержимое переменной среды [без расширения] - PullRequest
0 голосов
/ 26 января 2012

У меня проблема с переменными среды Windows в скрипте (управление конфигурацией).Мои сценарии имеют дело с автоматической установкой ресурсов и настройкой их требований (переменных среды, файлов и т. Д.)

Моя проблема возникает здесь.Один из моих сценариев устанавливает JDK в систему Windows, это означает, что нужно установить исполняемый файл, настроить JAVA_HOME и JRE_HOME и включить %JAVA_HOME%/bin в %PATH%.Это легко выполнить с помощью команд setx, но возникает проблема при выполнении второго выполнения сценария: переменная PATH заканчивается %PATH%;%JAVA_HOME%/bin;%JAVA_HOME%/bin (и дальнейшие выполнения будут означать более длинную переменную).

Решением этого побочного эффекта является выполнение команды только в том случае, если% PATH% еще не содержит% JAVA_HOME / bin, и это можно выполнить через echo %PATH% | find "%JAVA_HOME/bin", только если переменные не будут расширены по умолчанию ...

Я должен сказать, что предыдущая команда терпит неудачу, потому что JAVA_HOME содержит свою версию (например, C:\Program Files\Java\jdk_6u30).

Итак ... можно выводить переменную среды без расширения ее содержимого?Мне нужна только переменная RAW в команде find, ничего больше.

1 Ответ

0 голосов
/ 26 января 2012

Вы можете прочитать PATH непосредственно из реестра:

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path

Это позволит получить его значение без расширения.

...