Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

создание переменных в cmd [D7, 2000, XP]


Страницы:   1 2

antonn ©   (2008-12-27 13:30:00) 

Сформулировать не могу, задача такая: вызывается 1.bat, в нем запускается мое консольное приложение, после его отработки в "переменых" 1.bat должны появиться переменные созданые моей консолькой.
Т.е. в батнике переменная создается так:
SET TEMP_VAR=123456
echo %TEMP_VAR%


моя консоль отрабатывая в контексте этого батника сама инициализоровать эти переменные (либо если они уже есть - переделать), т.е. теперь батник будет выглядеть так:
mycmd.exe
echo %TEMP_VAR%


Как вот это действие называется, что искать? Пересмотрел кучу примеров и статей, везде консолька раскрашивается и ставятся обработчики всякие (искал по "вывод из консоли").


Ляпа   (2008-12-28 08:02:00) [21]


> желательно постандартней без всяких InjectMemory

Сомневаюсь, что можно стандартными способами менять переменные окружения родительского процесса.

> на дельфи

Портируй. В чём проблемы?


antonn   (2008-12-27 19:45:00) [22]


> Ляпа   (27.12.08 19:10) [9]

[2]


Ляпа   (2008-12-27 19:10:00) [23]

ShellExecute(0,nil, Pchar('SETENV.exe'), Pchar('TEMP_VAR=TEST_SETENV /PARENTS 2 /IM cmd.exe'), nil, 0);


antonn   (2008-12-27 18:54:00) [24]


> Ляпа   (27.12.08 18:39) [7]

да, вот что то этого мне и нужно, на дельфи, желательно постандартней без всяких InjectMemory (в идеале конечно хотелось бы отдать кусок текста на выполнение).


Ляпа   (2008-12-27 18:39:00) [25]

http://forum.farmanager.com/viewtopic.php?t=260
?


antonn   (2008-12-27 15:56:00) [26]


> sniknik ©   (27.12.08 15:40) [4]

считаем, что доступа на запись нет.
Меня лишь интересует, можно ли вернуть текст который будет "выполнен" той копии cmd, что запустила моя программа.


> Anatoly Podgoretsky ©   (27.12.08 15:41) [5]

неправильно, я задал другой вопрос.


Anatoly Podgoretsky   (2008-12-27 15:41:00) [27]

> antonn  (27.12.2008 14:47:02)  [2]

свести три батника к одному.


sniknik   (2008-12-27 15:40:00) [28]

> проще говоря кусок текста формируемый моей консольной программой выполнить в самом cmd после возврата управления ему
ну так... батник это же текстовый файл, исправь его, и по идее что дописано должно выполнится.


antonn   (2008-12-27 14:47:00) [29]


> Был вариант сохранять в файл и уже в самом батнике считывать
> его (пример на rsdn есть), но очень вероятно, что доступа
> на запись не будет :)

да и на костыль сильно смахивает :)


antonn   (2008-12-27 14:47:00) [30]

нет, их много (ну штук 40-50), они специфические (батник для упрощения некоторых операций (и быстрой правки их очередности и добавления), а вот переменные (от путей до файлов до флагов) формируются моей программкой). Да и дело в том, что вызвав такую программу во втором/третьем батнике в каждом я быстро и удобно получаю свои "переменные окружения". Был вариант сохранять в файл и уже в самом батнике считывать его (пример на rsdn есть), но очень вероятно, что доступа на запись не будет :)

вообще, можно ли как то в контексте cmd, запустившего мою программу, выполнить код (проще говоря кусок текста формируемый моей консольной программой выполнить в самом cmd после возврата управления ему)?


sniknik   (2008-12-27 14:37:00) [31]

если дело только в одной переменной то проще использовать код возврата программы... его в батнике можно "видеть" без дополнительных ухищрений.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо