Windows 10: переменная окружения добавлена, но не напечатана с помощью echo - PullRequest
0 голосов
/ 06 июля 2018

Еще одна из бесконечной коробки неприятных сюрпризов от Microsoft была бы рада, если бы кто-нибудь мог предложить способ ее решения, кроме чудесного бого-акта уничтожения этой компании:

Я добавил LOG_LEVEL в качестве системной переменной среды в Windows 10 и установил ее значение как INFO.

Затем (только после нажатия OK и закрытия этого окна) я открыл терминал командной строки и ввел echo %LOG_LERVEL%, который напечатал ... %LOG_LEVEL%.

Когда я пытаюсь сделать то же самое для переменной окружения, которая уже была там до того, как я добавил мою, например - echo %OS%, она печатает Windows_NT.

Теперь я попытался закрыть и снова открыть терминал командной строки несколькими различными путями.

В одном из них (который я больше не могу воспроизвести сейчас) команда действительно напечатала INFO (значение моей переменной).

Когда я пытаюсь сделать то же самое с помощью Power Shell (новый терминал командной строки, который Microsoft вставил в мою систему при последнем обновлении, вынуждая старую командную строку исчезать из контекстного меню), ситуация становится еще хуже, так как он не распознает ни добавленную мной переменную, ни другие переменные, которые были там ранее.

Для того же примера выше, echo %OS% печатает %OS%.

Кто-нибудь может понять, что, черт возьми, здесь происходит, и как получилось, что каждая простая функция, выпущенная этой компанией, превращает жизнь обычного пользователя в обычный кошмар?

Большое спасибо, и, пожалуйста, извините за чрезмерную ярость, выраженную в этом вопросе!

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Убедитесь, что вы не допустили глупой ошибки, как я, и введите неверное имя переменной. В моем случае мне потребовалось некоторое время (даже после проверки), чтобы заметить, что я установил свою переменную как JAVE_HOME, а не JAVA_HOME

Doh!

0 голосов
/ 06 июля 2018

Powershell - это не cmd.exe .. Если вы хотите распечатать значение системной переменной в Powershell, вы можете использовать

[Environment]::ExpandEnvironmentVariables("%LOG_LEVEL%")

или вызовите cmd.exe и выполните команду echo, к которой вы привыкли

cmd.exe /c "echo %LOG_LEVEL%"

Если вы действительно ненавидите powershell и хотите вернуться к старому cmd.exe, я думаю, вы можете (все еще) сделать это. Читайте здесь: https://support.microsoft.com/en-us/help/4027690/windows-powershell-is-replacing-command-prompt

...