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%


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


Leonid Troyanovsky   (2008-12-28 17:05:00) [1]


> Ляпа   (28.12.08 13:44) [28]

> Просто в твоём примере я этого не вижу (ничего личного и
> буквоедского, обычное уточнение)

В msdn подобная статья есть, и если уж это кого интересует, то
тот не сможет, IMHO, пройти мимо.
Пока о намерениях мы можем только гадать, я не вижу смысла
в полнофункциональных примерах.

--
Regards, LVT.


antonn   (2008-12-28 16:20:00) [2]

батник проще править, ничего не надо перкомпилировать.


Юрий Зотов   (2008-12-28 15:12:00) [3]

Непонятно, зачем тут вобще нужен батник. Все, что он делает, может сделать сама программа и тогда проблемы с переменными среды просто исчезают (ведь программа может не только запустить дочерний процесс, но и передать ему свое окружение).


Ляпа   (2008-12-28 13:44:00) [4]


>  h := FindWindow('ConsoleWindowClass', nil);


> Окну присваивается уникальное имя путем SetConsoleTitle,
>
> это имя и используется для поиска.

Просто в твоём примере я этого не вижу (ничего личного и буквоедского, обычное уточнение)


antonn   (2008-12-28 13:43:00) [5]


> Тогда меняй заголовок из своей программы,
> а по окончанию - вернешь на место старый.

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


Leonid Troyanovsky   (2008-12-28 13:39:00) [6]


> antonn ©   (28.12.08 13:32) [25]

> да запускаю не я, мое дело вернуть в него мою прогу и обеспечить
> поручение результата после ее отработки. Т.е. диктовать
> как ее запускать я не могу.

Тогда меняй заголовок из своей программы,
а по окончанию - вернешь на место старый.

--
Regards, LVT.


antonn   (2008-12-28 13:32:00) [7]


> Пускаешь его с параметром, в нем

да запускаю не я, мое дело вернуть в него мою прогу и обеспечить поручение результата после ее отработки. Т.е. диктовать как ее запускать я не могу.


Leonid Troyanovsky   (2008-12-28 13:31:00) [8]


> antonn ©   (28.12.08 13:25) [23]

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

Пускаешь его с параметром, в нем
title %1
exe.exe "%1"

--
Regards, LVT.


antonn   (2008-12-28 13:25:00) [9]


> Leonid Troyanovsky ©   (28.12.08 13:17) [22]

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


Leonid Troyanovsky   (2008-12-28 13:17:00) [10]


> antonn ©   (28.12.08 13:13) [21]

> ну в теории можно загнять туда время :)

Уж лучше параметром передавать, от юзера.

--
Regards, LVT.


antonn   (2008-12-28 13:13:00) [11]


> Только где ты там возьмешь уникальное имя?

ну в теории можно загнять туда время :)


sniknik   (2008-12-28 13:06:00) [12]

> vbs не пашет :)
да ну?

положи в файл с названием Hello.vbs следующую строчку
WScript.Echo "Hello Word!"
и выполни (в проводнике двойной клик мыши). а то ты его из "dos-а" наверно проверял...


Leonid Troyanovsky   (2008-12-28 13:03:00) [13]


> antonn ©   (28.12.08 12:59) [18]

> > Окну присваивается уникальное имя путем SetConsoleTitle,

> в самом батнике это возможно?

Можно и в батнике - TITLE, IMHO.
Только где ты там возьмешь уникальное имя?

--
Regards, LVT.


antonn   (2008-12-28 12:59:00) [14]


>
> Окну присваивается уникальное имя путем SetConsoleTitle,
>

в самом батнике это возможно?


antonn   (2008-12-28 12:54:00) [15]


> Leonid Troyanovsky ©   (28.12.08 11:14) [14]

спасибо, попробую (vbs не пашет :))


Leonid Troyanovsky   (2008-12-28 12:12:00) [16]


> Ляпа   (28.12.08 11:30) [15]

> А что будет, если есть несколько таких окон?

Окну присваивается уникальное имя путем SetConsoleTitle,
это имя и используется для поиска.

--
Regards, LVT.


Ляпа   (2008-12-28 11:30:00) [17]


> Leonid Troyanovsky ©   (28.12.08 11:14) [14]
А что будет, если есть несколько таких окон?


Leonid Troyanovsky   (2008-12-28 11:14:00) [18]


> antonn ©   (27.12.08 15:56) [6]

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


program setenvvar2;

uses
 Windows,
 Messages,
 SysUtils;

{$APPTYPE CONSOLE}

const
 s : String = 'set x=y'#13;
var
 h: HWND;
 i : Longint;
begin
 h := FindWindow('ConsoleWindowClass', nil);
 for i := 1 to Length(s) do
   PostMessage(h, WM_CHAR, WParam(s[i]), 0);
end.

--
Regards, LVT.


Leonid Troyanovsky   (2008-12-28 11:03:00) [19]


> antonn ©   (27.12.08 18:54) [8]

> хотелось бы отдать кусок текста на выполнение).

Пусти telnet service и напиши своего клиента к нему.

--
Regards, LVT.


Leonid Troyanovsky   (2008-12-28 11:00:00) [20]


> antonn ©   (27.12.08 14:47) [2]

http://groups.google.com/group/fido7.ru.delphi.chainik/browse_thread/thread/ad6df8e4a327fbb8/105efa8d48c49726#105efa8d48c49726

Во-ще-то, для таких вещей пользуют vbscript.

--
Regards, LVT.


Страницы:   1 2

Наверх

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