Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.05;
Скачать: CL | DM;

Вниз

Как сделать консольное прилодение, кот. взаимодействует с *.bat?   Найти похожие ветки 

 
NeyroSpace ©   (2004-02-11 16:53) [0]

rename myfile.txt %Project1.exe%
Т.е. нужно, чтобы консольный Project1.exe выдал после своей работы в консоль некую строку, которая и стала бы новым именем файла.


 
NeyroSpace ©   (2004-02-11 16:54) [1]

Извиняюсь! Читал, читал и все равно ошибся... ПРИЛОЖЕНИЕ имелось ввиду в заголовке.


 
DiamondShark ©   (2004-02-11 17:31) [2]

Через переменные окружения.


 
NeyroSpace ©   (2004-02-11 17:33) [3]

Как?
set VAR=%Project1.exe%
пишет переменная среды VAR не была определена


 
DiamondShark ©   (2004-02-11 17:43) [4]

Project1.exe
rename myfile.txt %VAR%

А Project1.exe должен выставить VAR


 
NeyroSpace ©   (2004-02-11 17:59) [5]

А поподробнее?
такое ощущение, что то что выводит Project1.exe консоль не воспринимает... Может нужна особая директива компилятора? Или нужно указать устройство вывода?


 
DiamondShark ©   (2004-02-11 18:16) [6]

Извиняюсь за дезинформацию. С переменными не получится. Процесс запускается со своей копией окружения.


 
NeyroSpace ©   (2004-02-11 18:35) [7]

Так а как тогда? Если не ошибаюсь, то CGI интерфейс (TWebModule) тоже работает через консоль. Однако есть какая-то разница в выводе обычного консольного приложения и его. Но впринципе обычная консоль тоже может работать как TWebModule. Только я не помню в чем там нюанс был... Может с батниками та же проблема?
Кто-нибудь вразумите меня!


 
DiamondShark ©   (2004-02-11 19:00) [8]

CGI-то работает. Передать порождаемому процессу копию окружения можно. Изменить переменные (и передать другому процессу) тоже можно. Вот только обратно их не получить.
А вывод CGI на stdout, т.е. обычный консольный вывод.

Так что подставить вывод в команду не получится.

Разве что трансректальным способом. Например, программа пишет команду в текстовый файл, а батник его CALL-ом потом (кто сказал обкладывает?!) вызывает.


 
panov ©   (2004-02-11 21:51) [9]

Содержимое .bat-файла:

project1 >$tmpFile
@for /F "eol= tokens=1 delims= " %%i in ($tmpFile) do SET D=%%i
del $tmpFile
echo %D%


project1 - консольное приложение, выводит имя файла - WriteLn(FileName);


 
NeyroSpace ©   (2004-02-12 09:53) [10]

panov © (11.02.04 21:51) [9]
Можно немного подробнее?
Я не помню что значит @ перед командой? вывод на экран?

/F "eol= tokens=1 delims= " - эта строка тоже загадка...


 
PVOzerski ©   (2004-02-12 10:07) [11]

Про pipes поищите. Если надо эмулировать stdin для командного процессора. Но зачем для переименования файла привлекать консоль, я понимаю плохо.


 
panov ©   (2004-02-12 10:12) [12]

>NeyroSpace © (12.02.04 09:53) [10]

Все просто - символ @ подавляет вывод этой команды на консоль... Просто осталась привычка так писать. Можно просто вывод отменить полностью, вставив вначале @echo off


 
NeyroSpace ©   (2004-01-23 13:37) [13]

/F "eol= tokens=1 delims= "
что делает эта строка?


 
NeyroSpace ©   (2004-02-12 16:01) [14]

UP



Страницы: 1 вся ветка

Текущий архив: 2004.03.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-12327
dendy
2004-02-22 22:50
2004.03.05
При изменении размера формы...


1-12357
dm37
2004-02-25 15:04
2004.03.05
time


1-12390
TUser
2004-02-24 18:48
2004.03.05
Что там 2200 потоков ...


6-12477
sashok
2003-12-30 11:09
2004.03.05
Соединение по сети


3-12260
Fom
2004-02-09 11:28
2004.03.05
Падение сервера?