Я видел разные проблемы, но я сражаюсь с ним целый день, поэтому, пожалуйста, помогите мне:)
Рассказ: у меня есть переменная PATH в панели Системные переменные и cmd. Не удается запустить exe файлы?
Более длинная история: я пытаюсь установить Ruby. Пробовал с разными версиями, но проблема одна и та же: у меня есть мое значение PATH, Ruby есть. НО при использовании его из cmd, рубин не распознается. echo %PATH%
дает другое значение от значения в панели переменных среды!
Первое вложение: панель переменных среды:
Значения для переменных пользователя:
C:\Users\morifey\nvmw\nodejs\v0.10.36;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files\Intel\WiFi\bin\";"C:\Program Files\Common Files\Intel\WirelessCommon\";"C:\Program Files (x86)\Skype\Phone\";"C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86";"C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64";"C:\Program Files\nodejs\";C:\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\bin;"C:\Program Files\TortoiseGit\bin";"C:\Program Files (x86)\Git\cmd";"C:\Program Files\Intel\WiFi\bin\";"C:\Program Files\Common Files\Intel\WirelessCommon\";C:\Users\morifey\AppData\Roaming\npm;C:\Ruby21\bin
Значение для переменных system:
C:\Ruby21\bin;C:\Users\morifey\nvmw\nodejs\v0.10.36;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files\Intel\WiFi\bin\";"C:\Program Files\Common Files\Intel\WirelessCommon\";"C:\Program Files (x86)\Skype\Phone\";"C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86";"C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64";"C:\Program Files\nodejs\";C:\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\bin;"C:\Program Files\TortoiseGit\bin";"C:\Program Files (x86)\Git\cmd";"C:\Program Files\Intel\WiFi\bin\";"C:\Program Files\Common Files\Intel\WirelessCommon\";"C:\Users\morifey\AppData\Roaming\npm";%SystemRoot%\system32;%SystemRoot%
Я сравниваю их с HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment - они все равно.
НО Я запускаю cmd и использую echo %PATH%
. Результаты:
C:\Users\morifey\nvmw\nodejs\v0.10.36;C:\ProgramData\Oracle\Java\javapath;C:\Win
dows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPow
erShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Int
el\WirelessCommon\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\In
tel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C
:\Program Files\nodejs\;C:\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\b
in;C:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\Git\cmd;C:\Program Fi
les\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users
\morifey\AppData\Roaming\npm
Ruby отсутствует! То же самое для обоих запускается как администратор, а не (на самом деле у меня один пользователь-администратор).
Я попытался установить путь (через set или setx), изменив оба регистра и переменные среды - ничего не работает. Я пробовал добавлять кавычки ("
) в пути, у которых есть пробелы - нет разницы.
За исключением, если я запустил cmd как администратор и использовал setx PATH "%PATH%;C:\Ruby21\bin"
! Затем echo %PATH%
возвращает реальный (обновленный) путь, и я могу запустить ruby
ТОЛЬКО в этом cmd. Если я закрою его и снова открою его как admin, изменения будут потеряны.
Пожалуйста, дайте мне совет, как с этим справиться? Мне просто нужно запустить Ruby:)
Windows 7 Ultimate, пакет обновления 1, 64-разрядный; Загруженный Ruby (из http://rubyinstaller.org/downloads/) - Ruby 2.2.2 (32 и 64 бит), Ruby 2.1.6 (32 и 64 бит) - результаты все одинаковы.
Изменить: после того, как несколько парней сказали, что мне не нужны кавычки, я их удалил и разместил именно то, что сказал @eryksun. Это результат:
C:\Users\morifey>echo %PATH%
C:\Users\morifey\nvmw\nodejs\v0.10.36;C:\ProgramData\Oracle\Java\javapath;C:\Win
dows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPow
erShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Int
el\WirelessCommon\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\In
tel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C
:\Program Files\nodejs\;C:\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\b
in;C:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\Git\cmd;C:\Program Fi
les\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users
\morifey\AppData\Roaming\npm
Это довольно странно, некоторые из входов повторяются:
C:\Program Files\Intel\WiFi\bin\;
C:\Program Files\Intel\WiFi\bin\;
C:\Program Files\Common Files\Intel\WirelessCommon\;
C:\Program Files\Common Files\Intel\WirelessCommon\;
C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;
C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;
несмотря на, они не похожи на строки, которые я вставил в Путь системных переменных!
Обновление. Я использовал PowerShell и this script, чтобы проверить, есть ли повторение в системных переменных. Я загружаю изображение с результатом. Это довольно странно, что путь именно то, что должно быть, но, как вы можете видеть, в CMD я вижу другую вещь!
Обновление. Сегодня я попытался запустить Ruby из PowerShell - все получилось. Так что кажется, что только CMD не знает, что происходит! И просто напомнить вам - перезагрузка не помогает!:)