Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » (статья) Переменные среды

Ответить
Настройки темы
(статья) Переменные среды

(*.*)


Сообщения: 36574
Благодарности: 6706


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 15-02-2006
Цитата:
В этой статье будут рассмотрены два типа переменных, использующихся в командных (пакетных, исполняемых) файлах, оболочках программ выбора приложений для автоматической установки и тому подобных случаях для задания путей командам установки, копирования, перемещения, а также прочих операций, совершаемых над файлами. Использование абсолютных путей (c:\Documents and Settings\All Users\Рабочий стол) не всегда удобно (так как, например, мы не всегда заранее знаем, на каком диске у нас возникнет необходимость установить операционную систему), а при использовании пременных сред (%ALLUSERSPROFILE%\Рабочий стол) и локальных переменных, получается гораздо короче, удобнее и не привязывает к определенной букве диска.
Читать дальше...
Статья основана на сообщении specialist в теме Маленькие Хитрости.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:55, 15-02-2006

 

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


вообще, даже при обращении по переменной, не факт, что у пользователя "рабочий стол" называется "рабочий стол" и т.п., и в общем-то теряется весь смысл использования переменных. Точную инфу можно получить из ключей реестра по адресу
Код: Выделить весь код
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
а задать эти значения - в
Код: Выделить весь код
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 22:40, 17-02-2006 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


(*.*)


Сообщения: 36574
Благодарности: 6706

Профиль | Сайт | Отправить PM | Цитировать


a1ex
Да, действительно, я сейчас нашел сам это в справке. Я понял логику Системные - возвращают одинаковые значения для всех пользователей, а локальные - возвращают различные значения, в зависимости от залогиненного пользователя (%username%, например). С %ALLUSERSPROFILE% действительно непонятно, что-то я сходу не нашел где она прописана. Может HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, но это HKLM и прямо сейчас я уже не моуг экспериментировать.

Petya V4sechkin
С Volatile понятно. Да, я видел, что там страница про WSH и дальше второй таблицы не пошел

All
Расковыряли переменные Но надо как-то определяться с классификацией Значит от справки идет: Системные и Локальные (пользовательские). Это я могу отклассифицировать в статье легко. У нас еще есть Локальные, используемые в скриптах. И как нам их отделить от пользовательских? Может быть сделать так:

Введение
<..>

Переменные среды
Четко разделить приведенные примеры переменных на Системные и Локальные (пользовательские) в соотв. со справкой Виндовс и об'яснить в чем разница.

Использование переменных в командных файлах (вместо Локальные переменные)
Первый пример
Код: Выделить весь код
DEL /F /Q "%AllUsersProfile%\Главное меню\Активация Windows.lnk"
DEL /F /Q "%AllUsersProfile%\Главное меню\WindowsUpdate.lnk"
и его описание пойдут сюда.

Далее сказать, что в командых файлах при помощи SET можно задавать любые переменные, действующие на протяжении командной сессии. Т.е. вообще не называть их Локальными, чтобы не было путаницы в статье И показать второй пример RunOnceEx, а затем третий.

Изменение переменных среды и добавление собственных переменных

Описать импорт в реестр:
  • HKCU\Environment
  • HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment (кстати, если на Т-12 импортировать, то должно работать уже при первом входе)
  • HKCU\Volatile Environment
а также использование setenv http://forum.oszone.net/showthread.p...emp#post350590

Возможно, придется добавить словарик - командная сессия, текущий сеанс, и т.д.

Остается только вопрос как изменить %USERPROFILE%, %ALLUSERSPROFILE% и т.п. Только нужно ли это вообще?


Dirk Diggler
Надо рассматривать статью в контексте автоматической установки, все-таки. Мало ли что там пользователь наворотил. Может он половину системных файлов удалил. Но мы же ему шансов не даем это проделать. А что он потом там наворотит - это проблема техподдержки

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 23:53, 17-02-2006 | #12



Moderator


Сообщения: 53589
Благодарности: 15546

Профиль | Отправить PM | Цитировать


Vadikan
Цитата:
Описать импорт в реестр:
HKCU\Volatile Environment
Не, для Volatile это не надо (нет смысла).

-------
«Компьютеру стало совсем худо, и он решил прекратить свои страдания».

Msgina.dll, диалог 2210


Отправлено: 07:52, 18-02-2006 | #13



Moderator


Сообщения: 53589
Благодарности: 15546

Профиль | Отправить PM | Цитировать


Кстати, получается уже три классификации переменных :)

1) на вкладке "Свойства системы -> Переменные среды";
2) по ссылке, которую я приводил выше;
3) в Центре справки и поддержки.

Очевидно, первая является подмножеством второй. А вот третья стоит особняком. Может быть потому, что справку и поддержку делали совсем другие люди, не имевшие отношения к разработке операционной системы? :)

Так что самое главное - не запутать читателя статьи :) Может, так и написать, что существуют разные классификации?

-------
«Компьютеру стало совсем худо, и он решил прекратить свои страдания».

Msgina.dll, диалог 2210


Отправлено: 09:02, 18-02-2006 | #14


(*.*)


Сообщения: 36574
Благодарности: 6706

Профиль | Сайт | Отправить PM | Цитировать


В общем, я задействовал справку виндовс и постарался учесть все пожелания http://oszone.net/display.php?id=3673 Комментарии?

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 23:17, 19-02-2006 | #15


Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


в списке не указаны %programfiles%(которая просто упоминается в тексте) и %commonprogramfiles%.

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 00:38, 20-02-2006 | #16


(*.*)


Сообщения: 36574
Благодарности: 6706

Профиль | Сайт | Отправить PM | Цитировать


Dirk Diggler
Да, вот о них и речь Почему-то они не упоминаются . Вообще, у меня не срастается классификация с об'яснением. http://tinyurl.com/9jduo

Цитата:
Системные переменные среды заданы заранее в операционной системе и доступны для всех процессов операционной системы Windows Server. Изменять эти переменные могут только пользователи с административными учетными данными. Эти переменные наиболее часто используются в сценариях входа в систему.
Понятно, их можно менять, и лежат они в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.
Цитата:
Локальные переменные среды доступны, только когда пользователь, для которого они были созданы, вошел в систему. Локальные переменные из куста HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды операционной системы.
Из этих двух предложений я не улавливаю являются ли выделенные вещи одним и тем же.
Цитата:
В следующем списке представлены различные типы переменных в порядке убывания приоритета.
1. Встроенные системные переменные
2. Системные переменные куста HKEY_LOCAL_MACHINE
3. Локальные переменные куста HKEY_CURRENT_USER
Вроде проясняется. Видимо, локальные переменные сидят в HKCU и больше нигде. А что такое встроенные? Видимо те, что в HKLM лежат. Зачем два раза повторять? В тоже время, системные переменные менять можно, а как поменять локальную (в контексте статьи)? Даже если в HKLM зaгнать свою username, это не будет иметь эффекта. Получаетеся что локальные больше всего похожи на встроенные системные )))))))))

%programfiles% - видимо системная, по тому принципу, раз путь переназначить можно и в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion он лежит.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 07:18, 20-02-2006 | #17


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Получается, что системные/локальные - это классификация по области видимости, а встроенные (aka расчётные)/пользовательские - по возможности напрямую создавать/изменять/удалять (в смысле без последствий ). Тогда USERNAME - это встроенная локальная... Возможно слишком вольно, зато логично. Хотя сочетание "Системная пользовательская" звучит несколько дико...

Отправлено: 10:17, 20-02-2006 | #18


(*.*)


Сообщения: 36574
Благодарности: 6706

Профиль | Сайт | Отправить PM | Цитировать


amel27
Цитата:
Получается, что системные/локальные - это классификация по области видимости <...> Тогда USERNAME - это встроенная локальная...
Да, получается так, и фактически локальные нельзя изменить, но тогда непонятно что означает
Цитата:
3. Локальные переменные куста HKEY_CURRENT_USER
Вероятно, в нашей классификации это должно быть так
Цитата:
В следующем списке представлены различные типы переменных в порядке убывания приоритета.
1. [Встроенные] локальные переменные
2. Системные переменные куста HKEY_LOCAL_MACHINE
3. Пользовательские переменные куста HKEY_CURRENT_USER
Поэтому я не стал это включать в статью... Это уже просто запредел. Хотя все-таки хотелось бы получить какой-то квалифицированный коментарий от МС

Добавил %PROGRAMFILES% и %COMMONPROGRAMFILES% в таблицу, хотя это похоже не совсем правильно. Там другие параметры реестра, и например setenv только импортирует в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment и %PROGRAMFILES% не меняет, насколько я понял.

Короче, в параграфе Изменение реестра написал так
Цитата:
Пути, возвращаемые переменными %PROGRAMFILES% и %COMMONPROGRAMFILES%, можно изменить в параметрах ProgramFilesDir и CommonFilesDir в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion или через файл ответов.
Подутомила уже эта классификация

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 11:00, 20-02-2006 | #19


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата:
Да, получается так, и фактически локальные нельзя изменить
Почему нельзя? Некоторые можно, например TEMP.
Цитата:
Пути, возвращаемые переменными %PROGRAMFILES% и %COMMONPROGRAMFILES%, можно изменить в параметрах ProgramFilesDir и CommonFilesDir в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion или через файл ответов
Первый способ прямой, но запрещенный (для переименования каталога недостаточно), второй - правильный, но косвенный... Т.е. переменная является встроенной системной. Интересно как будет звучать этот же тезис для NUMBER_OF_PROCESSORS?

Отправлено: 11:42, 20-02-2006 | #20



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » (статья) Переменные среды

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [статья] Использование среды восстановления Windows RE в Windows 7 Vadikan Microsoft Windows 7 38 06-02-2014 22:39
[решено] Переменные среды папок "Мои рисунки", "Моя музыка" или общие Redew Автоматическая установка Windows 2000/XP/2003 9 03-10-2009 20:43
[статья] Создание переменной среды, соответствующей букве установочного диска Vadikan Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 0 17-01-2009 18:21
Переменные среды и пути ярлыков Igor99999 Microsoft Windows 2000/XP 0 22-05-2007 16:39
настройка среды в MS VC 6.0 mrcnn Программирование и базы данных 5 29-03-2004 04:07




 
Переход