
set, как подставить значение в команду и как сделать переменную постоянной.set показывает все переменные текущего процесса. Значение подставляется в команду в виде %имя%, например echo %COMPUTERNAME%.%USERPROFILE% - домашняя папка, %APPDATA% - настройки, которые переходят вместе с пользователем между компьютерами, а %LOCALAPPDATA% - локальные настройки, которые не переходят. Папка %TEMP% предназначена для временных файлов.%PROGRAMDATA% хранит настройки программ для всех пользователей, %PROGRAMFILES% указывает, где стоят программы, а %PUBLIC% - общая папка, куда все пользователи компьютера могут класть файлы.%COMPUTERNAME%, %USERNAME%, %PROCESSOR_ARCHITECTURE% и %SYSTEMDRIVE% подходят для скриптов, которым нужно понять, на каком компьютере они запущены.PATHEXT задает окончания файлов, которые пробуются при поиске, например .exe и .bat.set, живет только в текущем окне. Чтобы она сохранялась, добавляем ее в Advanced Environment Variables в свойствах системы. Переменная пользователя с тем же именем перекрывает системную.%PUBLIC% доступна всем пользователям компьютера, а содержимое профиля пользователя видит только его владелец. Поэтому для обмена файлами между пользователями используют общую папку.Полный текст первых минут лекции «Переменные среды в CMD - Windows 10» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Добро пожаловать на лекцию про переменные среды, Environment Variable. Это переменные, которые есть в каждом процессе, в каждой программе, даже в CMD. И их операционка нам инициализирует, и мы можем их использовать, чтобы понять, в каком компьютере мы находимся.
Где папка пользователя находится, его домашняя папка, его профиль. Это существует и в Linux, и в Windows, и это существует еще там 79-го года.
То есть это очень важный старый инструмент для дженерного кода, для программы узнать, на каком компьютере она запущена, где можно сохранять файлы, где можно сохранять настройки.
Давайте я вам покажу, как я открыл этот CMD. Я его просто написал в командную строку и команду set. И вот Set показывает мне все переменные среды, которые есть для моего процесса по умолчанию в Windows.
Мы видим, например, переменную среды All Users Profile, то есть папку, в которой можно сохранить настройки для всех юзеров. А AppData это папка, в которой я могу сохранять настройки для какой-то программы, для какого-то приложения.
Эти настройки будут переходить со мной вместе на разные компьютеры. Если я в организации работаю и со своим юзером зашел на конкретный компьютер, а потом со своим же юзером вышел и зашел в другой компьютер, то есть я физически пересел между разными компьютерами, то эти настройки будут ходить вместе со мной.
Это называется Application Data, который роуминг. Видите, там в конце написано роуминг, значит они переходящие между компьютерами с моим юзернеймом.
Это мы про роуминг профиль, мы будем говорить на серверной части. Главное показать вам, что есть переменная, куда можно сохранить настройки и приложения.
Программа не должна думать и искать, куда их сохранить, где есть права, где нет прав, куда можно писать, куда нельзя. есть согласованные разрешенные папки, и там есть права доступа.
Например, эта папка находится в моем профиле, меня зовут Admin. И в C-Users Admin есть папка для всех настроек.
Есть настройки Roaming, есть настройки, которые локальные и не Roaming. Я вам их покажу немножко попозже. Давайте перейдем к Computer Name. Это вот одна из самых главных перемен, чтобы программа, процесс знали, в каком компьютере его запустили, где он сейчас бежит.
Это можно использовать в скрипте, в сценарии, когда у меня есть какой-то скрипт, сценарий, который я пишу, чтобы сделал то-то, то-то, то-то.
И могу проверить, на каком компьютере запущен этот мой сценарий. Я вам покажу, как это все проверяется. Мы пока что пытаемся понять, какие переменные среды вообще существуют, что в них сохранено и какие они.
Давайте посмотрим еще, что у нас здесь еще интересного есть. Есть у нас еще разные переменные. Давайте я вам покажу, что мы можем сделать «EcoAAA» и написать на экране «AAA».
Просто «Eco» — это написать на экране. А вместо «AAA» я могу вставить процент, имя переменной, еще раз, процент, имя переменной, я его копирую, чтобы не ошибиться, и процент в конце.
Вот процент, имя переменной, процент подменяет в командной строке значение на то значение, которое внутри этой переменной.
И я с процент компьютерный процент могу писать разные команды, сценарии и делать свои приложения. Home Drive это где находится мой профиль пользователя.
Home Path это где мой путь к моему профилю. Home это домашняя папка. Почему это так важно? Потому что у меня там есть права записывать информацию, сохранять информацию, которая не временная, которая постоянная, как документы.
Если я соединю эти две переменные, то я получу полный путь к профилю пользователя. Например, если я пишу сейчас свой Word, свой Excel, чтобы я знал, где мне сохранять файлы, где предлагать пользователю сохранить файлы по умолчанию.
Это постоянные файлы, не временные файлы. Временные файлы мы скоро посмотрим, где сохраняются. Так, что дальше у нас здесь есть? LocalAppData.
LocalAppData это тоже папка с настройками, видите, как та АПП. Только та app data, она roaming, то есть она переходит с моим пользователем между разными моими компьютерами, а local app data не переходит, то есть это локальные настройки для моего пользователя для конкретного компьютера.
И есть система автоматизации, которая синхронизирует эту папку roaming, об этом мы говорим про серверах. Кстати, через какой сервер я прошел авторизацию, это logon server, вот его имя, в этом случае это мой компьютер, количеством процессоров на моем компьютере.
Папка OneDrive - это Dropbox Google Drive Microsoft, где она находится, этот OneDrive для синхронизации. OS - я нахожусь на Windows или на Linux.
Path - это самая важная переменная. Это вот ради этого можно все учить, эту всю тему, потому что эта переменная позволяет мне запустить калькулятор с любого места и не только калькулятор. То есть даже если есть калькулятор где-то на жестком диске, а в моей
папке его нет, то я могу написать calc.exe и он его найдет благодаря той переменной path. Еще раз, видите, в этой папке, в которой я сейчас нахожусь, я сделал dir, калькулятора нет.
Но если я напишу calc.exe, он запустится, то есть Windows система знает, где его найти. И если я хочу, чтобы другие приложения запускались С любого места, так же как я сейчас запустил калькулятор, мне надо в переменную path добавить мою папку.
Потому что эта переменная указывает где искать. Вот ищи вот в этой папке cwindowssystem32. Если там нет, иди в папку cwindows. То есть видите, точка запятая разделяет между папками.
И вот здесь список папок, по которым он бежит и ищет, есть ли та программа, которую попросили запустить.
То есть если программы не существуют в текущем каталоге, в текущей папке, он идет в переменную path, смотрит на все папки там и ищет ту программу, которую я хотел в тех папках.
Если я напишу какую-то ерунду, он скажет, я пробежал по всем каталогам, по всем папкам и не увидел такой программы. Поэтому в переменную path очень важно добавить те папки, которые мы хотим запускать с любого места, те команды, которые мы любим и хотим запускать
с любого места и не писать полный путь. Чтобы не писать cwindowsystem32calc, мы можем указать path, и тогда нам можно будет указывать не полный путь, а только имя файла, и он сможет его сам найти.
Это переменная path, и я считаю, что она самая важная из всех переменных и больше всего используется. PathExtension это какие окончания файлов добавить.
То есть, когда я напишу, например, там calc, чтобы он знал имя файла, потому что имя файла это не calc. Имя файла это calc.exe, и он сам берет вот с этой переменной pathExtensions и добавляет.
Он сначала пробует, например, calc.com, если у него не получается calc.exe, calc.bat. Вот какие окончания файлов попробовать, в каком порядке.
Далее, следующая важная переменная, процессор архитектур, архитектура процессора. Это нам указывает, какой у нас процессор 64-битный или не 64-битный.
Сегодня уже все процессоры 64-битные, но когда-то это имело очень большую важность, эта переменная. Ее часто использовали в разных скриптах. Сегодня уже почти все компьютеры 64-битные, но все равно это одна из важных переменных, которые пользовались.
Вот этой переменной я никогда в жизни не пользовался. Имя процессора, какое у него поколение, какая у него версия, ревижн. Так, это переменные.
Кстати, каждое приложение имеет право делать с этой информацией, что они хотят. Это информация для нас, для нашего использования. Например, программ Data – это где сохранить информацию настройки программы для всех пользователей.
Не для моего конкретного профиля, а для моего конкретного пользователя, а для всей программы для всех пользователей. Например, номер лицензии, если он общий для какой-то программы или какую-то настройку для всех.
Давайте посмотрим, что здесь есть в программ Data. Мы увидим, что здесь разные программы сохраняют свои настройки, свою информацию. Ну, не знаю, давайте зайдем в VMware, увидим, что VMware Tools, VMware хранит здесь свои логи.
Вот видите, лог-файл VMware хранится в этой папке. То есть, если у меня что-то не работает внутри виртуалки, я могу зайти в лог-файл и там посмотреть.
Заметьте, в appdata это настройки для конкретного пользователя. В programdata это настройки на уровне всей программы для всех пользователей, общие настройки для всех пользователей.
И здесь указано, где они находятся. Конечно, я могу сохранить в любой папке все, что я хочу, но есть стандарт. И здесь по стандарту написано, в переменной Program Files есть указатель, где установлены все программы.
И, конечно, если я пишу свой код для установки своей программы, свой установщик, то я не буду его устанавливать в C Program Files насильно.
Может быть, у человека нет места на C Program Files, он захотел, чтобы все его программы лежали в другом месте, на диске D. Вот в этой переменной есть ссылка, где