Главная страница
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.01 c
3-12248
Draught
2004-02-09 14:00
2004.03.05
ALIAS на другом компьютере


1-12412
Ghost.
2004-02-22 17:39
2004.03.05
шрифты в Label


1-12359
tria
2004-02-25 14:21
2004.03.05
Не заходит отладчик в мой модуль


1-12394
Insert
2004-02-24 19:27
2004.03.05
Список файлов?


1-12374
Evgeny78
2004-02-25 10:48
2004.03.05
Курсор мыши