Форум: "Потрепаться";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];
ВнизКак сделать консольное прилодение, кот. взаимодействует с *.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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c