| View previous topic :: View next topic |
| Author |
Message |
790
Joined: 09 Aug 2008 Posts: 351
|
(Separately) Posted: Fri May 29, 2026 15:53 Post subject: [WFX] Environment Variables Ex |
|
|
Добавил новую переменную в [Current process (TOTALCMD)], после перезагрузки она исчезла. А какой тогда смысл в новых переменных? Или они только в [Current process (TOTALCMD)] не сохраняются? _________________ TC 11.57 32/64, Win10x64
Cuda уехал text, он был ещё вчераа... |
|
| Back to top |
|
 |
jentoso

Joined: 20 Dec 2007 Posts: 438
|
|
| Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 1147
|
(Separately) Posted: Fri May 29, 2026 19:48 Post subject: |
|
|
790
Не ради прикола, хотя было прикольно. С болваном по-другому и не бывает
 Hidden text Добавил новую переменную в [Current process (TOTALCMD)], после перезагрузки она исчезла.
 Hidden text Это абсолютно стандартное и правильное поведение Windows.
Любые переменные окружения, которые вы создаете или изменяете внутри запущенного процесса (будь то Total Commander, командная строка или любая другая программа), существуют только в оперативной памяти этого конкретного процесса и только пока он запущен. При перезагрузке компьютера (или даже просто при закрытии и повторном открытии Total Commander) эта память очищается, и все временные переменные исчезают.
Чтобы переменная сохранялась после перезагрузки, её нужно записать в реестр Windows (сделать системной или пользовательской).
Ниже описаны три способа, как сделать переменную постоянной, в зависимости от того, как именно вы её используете в Total Commander.
------------------------------
## Способ 1. Через стандартные настройки Windows (Навсегда для всей системы)
Если эта переменная нужна вам постоянно и вы хотите, чтобы её видел не только Total Commander, но и любые другие программы:
1. Нажмите Win + R, введите sysdm.cpl и нажмите Enter.
2. Перейдите на вкладку Дополнительно (Advanced) и снизу нажмите Переменные среды... (Environment Variables).
3. В блоке Переменные среды пользователя нажмите Создать (New).
4. Введите имя переменной и её значение (путь к папке). Нажмите ОК.
5. Важно: Чтобы Total Commander увидел эту переменную, перезапустите его. При старте он автоматически скопирует её из системы.
------------------------------
## Способ 2. Автоматическое создание при старте Total Commander (Через плагин)
Если вы хотите, чтобы переменная существовала только внутри Total Commander и не «засоряла» общую систему, но при этом автоматически создавалась заново при каждом его запуске, используйте популярный плагин Autorun.
1. Скачайте и установите плагин Autorun для Total Commander (он предназначен для выполнения команд при старте TC).
2. Откройте конфигурационный файл плагина (обычно это autorun.cfg в папке плагина или в папке с totalcmd.exe).
3. Добавьте в него строку:
SetEnv ИМЯ_ПЕРЕМЕННОЙ "значение_или_путь"
4. Теперь при каждом запуске Total Commander плагин будет незаметно создавать эту переменную в памяти процесса, и она никогда не потеряется.
------------------------------
## Способ 3. Запуск Total Commander через командный файл (.bat / .cmd)
Самый простой способ без установки плагинов — запускать Total Commander не напрямую через ярлык, а через маленький скрипт, который сначала создаст переменную, а затем сам запустит TC.
1. Создайте в блокноте текстовый файл и напишите там:
@echo off
set "МОЯ_ПЕРЕМЕННАЯ=C:\Какая-то_Папка"
start "" "C:\TotalCMD\totalcmd64.exe"
(Замените путь к totalcmd64.exe на ваш актуальный путь).
2. Сохраните файл под именем, например, run_tc.bat.
3. Запускайте Total Commander через этот .bat файл. Процесс-стартер передаст переменную «по наследству» запущенному Total Commander, и она будет активна в течение всей сессии.
------------------------------
Если вы использовали какой-то специфический плагин внутри Total Commander для редактирования окружения (например, Environment Variables Manager), или если вам нужно, чтобы переменная автоматически подхватывала пути к флешке (портативный режим), напишите об этом — я подскажу, как правильно настроить конфигурацию.
 Hidden text А какой тогда смысл в новых переменных? Или они только в [Current process (TOTALCMD)] не сохраняются?
 Hidden text Они не сохраняются после перезагрузки ни в одной программе в мире, если созданы внутри процесса. Это базовый закон работы операционной системы Windows (и Linux тоже).
Вкладка [Current process (TOTALCMD)] в утилитах редактирования среды создана исключительно для временных задач «здесь и сейчас».
## В чём главный смысл временных переменных?
1. Безопасное тестирование: Вам нужно проверить, как утилита или скрипт (например, компилятор, Python или ffmpeg) поведёт себя с новыми путями. Если вы пропишете их временно в процесс Total Commander, вы сможете протестировать работу, не забивая системный реестр «мусором». Если что-то пойдёт не так — достаточно просто перезапустить Total Commander.
2. Изоляция и портативность: Представьте, что у вас на флешке записан Total Commander и какая-то программа, которой для работы нужна переменная JAVA_HOME. Вы вставляете флешку в чужой компьютер. Вам нельзя (или нет прав) менять системные настройки этого ПК. Вы создаете переменную внутри процесса Total Commander — и запущенная из него программа работает отлично. Вытащили флешку — на чужом компьютере не осталось никаких следов.
3. Запуск дочерних программ с особыми правами: Любая программа, которую вы запускаете из Total Commander (двойным кликом по .exe или через его встроенную командную строку), является его «ребёнком» (дочерним процессом). По законам Windows она полностью наследует все переменные от «родителя». Изменив переменную в [Current process (TOTALCMD)], вы автоматически передаёте её всем утилитам, которые запустите внутри TC в этой сессии.
------------------------------
## Где ИМЕННО они сохраняются навсегда?
Если в вашей утилите управления переменными (например, Rapid Environment Editor или плагин для TC) есть другие вкладки, обратите внимание на их названия. Сохраняться после перезагрузки будут только те, что записаны в Реестр (Registry):
* [User] (Пользовательские) — сохраняются навсегда в вашем профиле Windows (в реестре по адресу HKEY_CURRENT_USER\Environment). Их видите только вы.
* [System] (Системные) — сохраняются навсегда для всего компьютера (в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment). Их видят все пользователи и службы, но для их изменения нужны права администратора.
## Резюме
Вкладка [Current process] — это «черновик» в оперативной памяти. Вкладки [User] и [System] — это «чистовик», который Windows намертво записывает на жёсткий диск в реестр.
Если вы хотите, чтобы переменная не исчезала, расскажите, для какой задачи (запуск программы, сокращение путей, портативный софт) вы её создаёте? Я подскажу, в какую вкладку или конфигурационный файл её правильнее всего прописать. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|