Добрый день уважаемые читатели и гости блога, сегодня я с вами хочу обсудить вот такую тему, что такое переменные среды Windows, где их можно использовать, как в обычной практике пользователя, так и в практике системного администратора, я вам приведу несколько примеров. Как все это дело настраивается и изменяется под ваши нужны, на мой взгляд это фундаментальные знания, понимание которых вам лучше покажет принцип работы операционных систем семейства Windows.
Давайте разберемся в понятии, и так переменная окружения (environment variable )это специального рода ссылки уменьшенного размера, на определенные объекты операционной системы Windows, используемые разными программами для хранения информации и взаимодействия с ней. Можно провести аналогию с относительными ссылками на сайтах, где нет явного указания на протокол. Чаще всего это пути до конкретных директорий в ОС.
Приведу несколько примеров:
Все переменные среды windows 10 и других версий в своем составе имеют специальный оператор %. Он необходим, чтобы операционная система могла обработать поисковый запрос. Простой пример вы ищите папку TEMP и не знаете, где она располагается, вводите %TEMP% и поиск будет на всех локальных дисках и разделах.
Приведенный список, в полной мере подойдет и для Windows 7 и для Windows 8.1, все проверенно лично. Уверен, что данные знания, очень сильно вам помогут оптимизировать свою работу.
В Windows 10 и других версиях, можно вывести список всех переменных сред Windows, для этого откройте командную строку от имени администратора и введите команду SET. В результате вы получите все переменные среды windows 10 по умолчанию для конкретной операционной системы.
Для удобства вы можете экспортировать весь этот список в текстовый файл, для этого введите:
set > D:\Variables.txt
Вот содержимое данного документы.
Еще одним методом посмотреть переменные операционной системы, выступает реестр Windows. Нажимаем WIN+R и вводим regedit. В открывшемся окне редактор реестра, перейдите в ветку:
Для просмотра переменных для компьютера
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Для просмотра переменных для пользователя
HKEY_CURRENT_USER\Environment
ПО мимо уже имеющихся переменных Windows 10, вы можете создать и новые, это очень легко и не запрещается. Что от вас требуется, вам необходимо зайти в свойства системы. Тут несколько методов, если мы говорим про Windows 10, то можно сделать через правый клик по кнопке "Пуск", выбрав пункт система.
Универсальный метод, это зайти в свойства моего компьютера или нажать сочетание клавиш WIN+Pause Breake .
С окне свойства системы, вы должны перейти в пункт "Дополнительные параметры системы"
И перед вами два вида переменных сред Windows:
И те и другие можно легко изменить или создать.
Для примера я создам новую системную переменную, назову ее SYSPREP и укажу путь до папки C:\Windows\System32\Sysprep
Как видите тут ничего сложного нет, благодаря вот таким вещам вы можете сильно упростить себе жизнь и экономить много времени.
Путь к указанному файлу состоит из одного или нескольких компонентов, разделенных специальным символом (обратной косой чертой), причем каждый компонент обычно является именем каталога или именем файла, но с некоторыми заметными исключениями, описанными ниже. Это часто имеет решающее значение для интерпретации системы пути: как выглядит начало или префикс пути. Этот префикс определяет пространство имен, которое использует путь, и, кроме того, какие специальные символы используются в какой позиции в пути, включая последний символ.
Если компонент пути является именем файла, он должен быть последним компонентом.
Каждый компонент пути также будет ограничен максимальной длиной, указанной для определенной файловой системы. В общем, эти правила делятся на две категории: короткие и длинные. Обратите внимание, что имена каталогов хранятся в файловой системе как особый тип файла, но правила именования для файлов также применяются к именам каталогов. Таким образом, путь - это просто строковое представление иерархии между всеми каталогами, которые существуют для конкретного файла или имени каталога.
Полные и относительные пути
Для функций Windows API, которые управляют файлами, имена файлов часто могут быть относительно текущего каталога, в то время как некоторые API требуют полного пути. Имя файла относится к текущему каталогу, если оно не начинается со следующего:
Максимальное ограничение длины пути
В API-интерфейсе Windows (с некоторыми исключениями, которые будут обсуждаться в следующих параграфах), есть максимальная длина пути в max_path, которая определяется как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имени, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диск D "D:\some 256-символьный путь строку ", где " " представляет собой невидимый символ NULL для текущей кодовой странице системы. (Символы используются здесь для наглядности и не могут быть частью допустимой строки пути.)
Функции файлового ввода/вывода в Windows API конвертируют "/" в "\" в рамках преобразования имени в НТ-имя типа, за исключением случаев использования "\\?\" префикса.
В Windows API есть множество функций, которые также имеют версии в формате юникода, чтобы разрешить путь расширенной длины для максимальной общей длины пути 32 767 символов. Этот тип пути состоит из компонентов, разделенных обратными косыми чертами, каждый до значения, возвращаемого в параметре Lpmaximumcomponentlength функции GetVolumeInformation (это значение обычно составляет 255 символов). Чтобы указать путь расширенной длины, используйте"\\?\" префикс. Например?\\" ?\D:\очень_длинный_путь".
Обратите внимание, что максимальный путь 32 767 символов является приблизительным, потому что"\\?\ "префикс может быть расширен до более длинной строки системой во время выполнения, и это расширение применяется к общей длине.
Этот же префикс также можно использовать с путями, построенными в соответствии с универсальным соглашением об именовании (UNC). Чтобы указать такой путь с помощью UNC, используйте"\\? \UNC\". Например?\\" ,\UNC-путь\ \ сервер\общий_ресурс", где "сервер" - имя компьютера и " общий_ресурс " - имя общей папки. Эти префиксы не используются как часть самого пути. Они указывают, что путь должен быть передан системе с минимальным изменением, а это означает, что вы не можете использовать прямые косые черты для представления разделителей пути, или точку для представления текущего каталога, или двойные точки для представления родительского каталога. Так как вы не можете использовать "\\?\ "префикс с относительным путем, относительные пути всегда ограничены в общей сложности числом символов MAX_PATH.
Нет необходимости выполнять какие-либо действия для нормализации юникода в строках путь и имя файла для файла Windows функций API ввода-вывода, поскольку файловая система обрабатывает путь и имена файлов как последовательность значений типа wchar. Любые нормализации, необходимые для вашего приложения должны быть выполнены с учетом этого, внешнего на любые вызовы, связанные с файлом Windows функции API ввода-вывода.
При использовании API для создания каталога указанный путь не может быть таким длинным, что невозможно добавить Имя файла 8.3 (то есть имя каталога не может превышать MAX_PATH минус 12).
Оболочка и файловая система имеют различные требования. Можно создать путь с API Windows, который пользовательский интерфейс оболочки не в состоянии интерпретировать должным образом.
Начиная с Windows 10 версии 1607, ограничения MAX_PATH были удалены из общих Win32 файлов и каталогов функций. Тем не менее необходимо выбрать новое поведение. Рееста позволяет включить или отключить новое поведение длинного пути. Для включения длинных путей установить ключ реестра в
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Тип: reg_dword). Значение ключа будет кэшироваться системой (на процесс) после первого вызова файла Win32 или функции каталога.Раздел реестра не будет перезагружен в течение всего срока действия процесса. Для того, чтобы все приложения в системе распознали значение ключа, может потребоваться перезагрузка, потому что некоторые процессы могли начаться до того, как ключ был установлен.
Вы также можете включить новое поведение длинного пути для каждого приложения через манифест:
Папка «AppData» содержит пользовательские сведения различных приложений (история, настройки, сессии, закладки, временные файлы и т.д.). Со временем она засоряется различными данными, которые, возможно, уже не нужны, а только занимают дисковое пространство. В этом случае есть смысл почистить данный каталог. Кроме того, если при переустановке операционной системы пользователь желает сохранить те настройки и данные, которые он применял в различных программах ранее, то нужно перенести содержимое этой директории со старой системы на новую, произведя её копирование. Но для начала нужно найти, где она расположена. Давайте узнаем, как это сделать на компьютерах с операционной системой Windows 7.
Название «AppData» расшифровывается, как «Application Data», то есть, в переводе на русский язык означает «данные приложения». Собственно, в Windows XP этот каталог имел полное название, которое в более поздних версиях было сокращено до нынешнего. Как уже говорилось выше, в указанной папке содержаться данные, которые накапливаются при работе прикладных программ, игр и других приложений. На компьютере может быть не один каталог с таким названием, а несколько. Каждый из них соответствует отдельной созданной пользовательской учетной записи. В каталоге «AppData» имеется три подкаталога:
В каждом из этих подкаталогов имеются папки, названия которых являются идентичными наименованиям соответствующих приложений. Вот эти директории и следует чистить для освобождения пространства на диске.
Следует знать, что каталог «AppData » по умолчанию скрытый. Это сделано для того, чтобы неопытные пользователи по ошибке не удалили важные данные, содержащиеся в нем или его в целом. Но для того чтобы отыскать данную папку, нам нужно включить видимость скрытых папок. Перед тем, как перейти к способам обнаружения «AppData» , выясним, как это сделать. Существует несколько вариантов включения видимости скрытых папок и файлов. Те пользователи, которые хотят с ними ознакомиться, могут сделать это с помощью отдельной статьи на нашем сайте. Тут же мы рассмотрим только один вариант.
Показ скрытых папок будет включен.
Теперь перейдем непосредственно к способам, с помощью которых можно переместиться в искомый каталог или найти, где он располагается. Если требуется перейти в «AppData» текущего пользователя, то сделать это можно при помощи поля «Найти программы и файлы» , которое расположено в меню «Пуск» .
Непосредственно в каталог «AppData» можно попасть и сразу через ввод выражения в поле «Найти программы и файлы» .
Очень похожий по алгоритму действий вариант открытия каталога «AppData» можно осуществить с помощью системного инструмента «Выполнить» . Этот способ, как и предыдущий, подойдет для открытия папки для той учетной записи, под которой сейчас работает пользователь.
Аналогично с предыдущим способом можно и сразу попасть в папку «AppData» .
Как выяснить адрес и попасть в папку «AppData» , предназначенную для той учетной записи, в которой сейчас работает пользователь, мы разобрались. Но что делать, если требуется открыть каталог «AppData» для другого профиля? Для этого нужно совершить переход напрямую через «Проводник» или ввести точный адрес расположения, если вы его уже знаете, в адресную строку «Проводника» . Проблема в том, что у каждого отдельного пользователя, в зависимости от настроек системы, расположения Виндовс и названия учетных записей, этот путь будет отличаться. Но общий шаблон пути в директорию, где расположена искомая папка, будет иметь следующий вид:
{системный_диск}:\Users\{имя_пользователя}
Существует несколько вариантов попасть в папку «AppData» и узнать её месторасположение в Windows 7. Это можно сделать как способом прямого перехода с помощью «Проводника» , так и путем введения командных выражений в поля некоторых инструментов системы. Важно знать, что папок с подобным названием может быть несколько, в соответствии с наименованием учетных записей, которые заведены в системе. Поэтому сразу нужно уяснить, в какой именно каталог вы желаете перейти.
Многим пользователям ПК под управлением ОС Windows, не говоря о разработчиках, знакомы проблемы при работе с длинными (более 260 символов, MAX_PATH) путями файлов или каталогов.
В данной статье рассматриваются способы избавления от этого пережитка при разработке приложений на различных платформах (WinApi, .Net Framework, .Net Core) и активации нативной поддержки длинных путей в Windows 10 (Anniversary Update).
В Windows 10 (1607) поведение функций для работы с файлами изменилось: появилась возможность отключить проверку ограничений MAX_PATH на уровне системы.
Это коснулось следующих функций:
Для работы с каталогами:
CreateDirectoryW, CreateDirectoryExW, GetCurrentDirectoryW, RemoveDirectoryW, SetCurrentDirectoryW. И для работы с файлами:
CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, FindFirstFileExW, FindNextFileW, GetFileAttributesW, GetFileAttributesExW, SetFileAttributesW, GetFullPathNameW, GetLongPathNameW, MoveFileW, MoveFileExW, MoveFileWithProgressW, ReplaceFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, FindNextStreamW, GetCompressedFileSizeW, GetFinalPathNameByHandleW.
Вот что это даёт:
Как включить:
Всё работает из коробки. В отличие от реализации в.Net Framework – тут нет необходимости в добавлении префикса “\\?\” – он добавляется автоматически при необходимости.
Вот можно посмотреть пример.
Включить встроенную поддержку длинных путей можно создав или изменив следующий параметр системного реестра: HKLM\SYSTEM\CurrentControlSet\Control\FileSystem Параметр LongPathsEnabled (Тип: REG_DWORD) 1 – соответствует значению включено.
Или через групповые политики (Win+R\gpedit.msc) Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths. Оно же в локализованном варианте: Конфигурация компьютера > Административные шаблоны > Система > Файловая система > Включить длинные пути Win32.
Далее источники расходятся во мнении относительно манифеста (или я неправильно понял, но на данный момент проверить не имею возможности). Например, в документации MSDN написано, что манифест можно использовать в качестве альтернативного способа активации поддержки длинных путей в отдельных приложениях, а в блоге MSDN указано, что это является вторым обязательным шагом после активации в политиках.
Но они сходятся в формате задания данной опции:
С CMD, к сожалению, это не сработает, на данный момент, из-за особенностей работы с путями, а в PowerShell должно всё заработать.
Спасибо за внимание!
Этот раздел касается:Инструкции на данной странице предназначены только для опытных пользователей и системных администраторов.
Чтобы запустить другую версию Java, укажите полный путь или используйте инструмент java_home:
% /usr/libexec/java_home -v 1.8.0_73 --exec javac -version
Чтобы задать путь окончательно, настройте его в файле автозагрузки.
Примечание.
Приведены инструкции для двух самых популярных оболочек на Linux и Solaris. Если вы используете другие оболочки, см. Учебное пособие по установке переменной PATH .
Отредактируйте файл автозагрузки (~/.bashrc)
Отредактируйте файл автозагрузки (~/.cshrc)