170 похожих чатов

Как установить переменную окружения в текущей сессии консоли? os.environ['EXAMPLE123'] = 'Hello123' os.system('set

EXAMPLE123=Hello123')
устанавливают только для процесса питон скрипта

18 ответов

20 просмотров

Никак желательно. Переменные окружения штатно наследуются вниз, а не вверх.

Ruslan-aka DUDE Автор вопроса

а если сильно хочется?

Ruslan aka DUDE
а если сильно хочется?

Ну, у винды был какой-то механизм распространения изменений системных переменных окружения в приложения, которые готовы к такому. То ли какое-то оконное сообщение, то ли что-то подобное. Задача-то в чём? Ты явно делаешь что-то шиворот-навыворот.

Ruslan-aka DUDE Автор вопроса
evle
Ну, у винды был какой-то механизм распространения ...

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

Ruslan aka DUDE
я посылал это обновление не работает оно на других...

Это не задача. Это попытка решения какой-то проблемы. Какой?

Ruslan-aka DUDE Автор вопроса
evle
Это не задача. Это попытка решения какой-то пробле...

проблема: мне нужна имитация сессии я открываю cmd.exe - это сессия. чтобы отделить одну от другой - нужно установить переменную "маркер" в виде тайм-штампа сойдет даже установка заголовка консоли - тоже перепробовал всякое - не работает как надо все программы запущенные в этой консоли будут использовать одну переменную окружения, сгенерированную первым запуском программы которая обнаружила что переменной нет и установила ее

Ruslan aka DUDE
проблема: мне нужна имитация сессии я открываю cmd...

Бррр. Что за "имитация сессии"? Поподробнее бы.

Ruslan-aka DUDE Автор вопроса
Ruslan aka DUDE
ниже описал же в чем суть

Ну. я прочитал, но не уверен, что понял. Ты пытаешься использовать переменные окружения для взаимодействия между процессами что ли?

Ruslan-aka DUDE Автор вопроса
evle
Ну. я прочитал, но не уверен, что понял. Ты пытаеш...

нет, не между процессам нужен ориентир потому и называю это сессией

Ruslan aka DUDE
нет, не между процессам нужен ориентир потому и на...

Ну по факту ты хочешь чтобы действия одного процесса влияли на то, в каком контексте запускаются следующие процессы, запущенные его родителем. Так получается?

Ruslan-aka DUDE Автор вопроса
evle
Ну по факту ты хочешь чтобы действия одного процес...

по сути да первый запуск обнаруживает отсутствие контекста устанавливает контекст - таймштамп остальные запуски будут видеть этот контекст и юзать уже раннее установленный контекст вся загвоздка в том что когда ты закроешь консоль (cmd.exe) то всё, такой же контекст уже никогда не случится т.к. дата движется вперед (таймшьамп)

Ruslan aka DUDE
по сути да первый запуск обнаруживает отсутствие к...

Если у тебя запуском заведует cmd, то она и должна ставить соответствующие переменные. Механизма, проставляющего переменные для родительского процесса просто нет и быть не должно, это дыра в безопасности и в целом непредсказуемо. Либо выдавай значения для установки переменных окружения в stdout процесса и обрабатывай уже командами консоли, либо переноси управление запуском следующих программ внутрь своей, тогда у тебя будет контроль, с какими переменными окружения их запускать.

Ruslan-aka DUDE Автор вопроса
evle
Если у тебя запуском заведует cmd, то она и должна...

это слишком очевидно это мне и так ясно хочу шиворот на выворот)))

Ruslan aka DUDE
это слишком очевидно это мне и так ясно хочу шивор...

Хоти. Нельзя. Причины, почему нельзя, я описал. Ну либо хаки с патчем памяти родительского процесса и подобная дичь. :-)

Ruslan aka DUDE
проблема: мне нужна имитация сессии я открываю cmd...

Это не описание проблемы. Это уже ответ на мета-вопрос. в чем заключается конкретно problem statement - не понятно.

Ruslan-aka DUDE Автор вопроса
NNurik N
Это не описание проблемы. Это уже ответ на мета-в...

я уже решил задачу получаю start time родительского процесса этого ориентира мне достаточно

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта