2015-11-20 2 views
0

Я надеюсь, что для этого есть простой ответ. Есть ли команда dos, которая даст мне список всех User Переменные окружения? (или значение переменной среды пользователя, если она существует). Я знаю, что есть команда «set», однако в ней перечислены как пользовательские, так и системные переменные. Я запускаю скрипт, и я хотел бы знать, существует ли в переменных пользователя определенная переменная среды. Только другой вариант мог бы использовать информацию реестра. Но я хотел бы знать, возможно ли это с помощью команды dos или чего-то подобного.Получить переменные среды пользователя из командной строки

Благодаря

+0

Как только переменные находятся в среде процесса, информация о том, откуда они пришли, давно исчезла. –

+0

около дубликата: http://stackoverflow.com/questions/30675480/windows-user-environment-variable-vs-system-environment-variable?rq=1 –

ответ

0

Да, просто использовать набор команд:

SET 

List all environment variables from command line?

Если вы хотите увидеть все с указанным префиксом вы используете:

SET prefix 

enter image description here

+1

Вы пропустили эту часть вопроса «Я знаю, что есть» 'command **, но в ней перечислены как пользовательские, так и системные переменные **. – dxiv

+0

Команда @Coffee, SET содержит как пользовательскую, так и системную переменную env. Мне нужно знать, существует ли ** пользовательская переменная env. – Nik

0

Используя команду psexec (https://technet.microsoft.com/en-us/sysinternals/psexec.aspx) в приглашении с повышенным cmd, вы увидите список системных переменных.

psexec -s cmd /c set 

Вы можете дифф этот список против set списка в обычной строке определить, какие переменные различны, т.е. являются пользовательские переменные.

Я не вижу более прямого способа сделать это (кроме чтения среды из реестра).

+0

Основываясь на информации в приведенной ссылке, похоже, что мне нужно установить Pstools, и она не поставляется с ОС Windows? Странно, что Windows имеет команду SETX для установки переменных на уровне пользователя или системы, но не имеет команды для получения переменных пользователя vs system. – Nik

+0

@Nik Вам просто нужно развернуть ZIP-файл, установка не требуется. В первый раз, когда вы запустите psexec, появится окно с условиями, которые у вас есть, или вы можете запустить 'psexec -accepteula', чтобы обойти его. – dxiv

+0

Спасибо. Я запускаю скрипт, который будет работать на пользовательском компьютере, где у меня нет никакого контроля над добавлением этого exe. Я думаю, что я изучу параметр реестра – Nik

Смежные вопросы