Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизЗапуск внешнего приложения Найти похожие ветки
← →
Alex_1qaz_2006 (2006-06-23 11:52) [0]Здравствуйте мастера!
Есть проблемка. Необходимо запустить внешнюю программу с передачей параметров через командную строку и перенаправить вывод программы в файл.
Пробовал через WinExec. Запуск происходит с передачей параметров - все нормально. Но перенаправление вывода в файл не происходит.
Пожалуйста подскажите как это можно сделать.
Приблизительные строки кода:
Var
rc : integer;
begin
rc:=WinExec("rar.exe a -r arcname d:\ >arcname.lst", ...);
← →
Сергей М. © (2006-06-23 11:57) [1]
> перенаправление вывода в файл не происходит
Происходит.
Но скорей всего файл arcname.lst ты ищешь не там (не в той директории) где он реально создан при этом.
← →
Alex_1qaz_2006 (2006-06-23 12:05) [2]В строках кода однозначно задается путь и имя файла перенаправления.
← →
Сергей М. © (2006-06-23 12:08) [3]Хочешь сказать что после выполнения этой WinExec() сквозной поиск интересующего файла по всем томам не приводит к успеху ?
← →
Alex_1qaz_2006 (2006-06-23 12:15) [4]Да, именно так. Да сам поиск не нужен, так как указан точный путь и имя файла.
Но все равно на всякий случай поискал - нет.
← →
Сергей М. © (2006-06-23 12:21) [5]
> поиск не нужен, так как указан точный путь и имя файла
Судя по "Приблизительные строки кода" точный путь как раз отсутствует.
Приведи реальную ком.строку...
← →
Alex_1qaz_2006 (2006-06-23 12:41) [6]Строка сложная и формируется программно. Весь код приводить это много.
В итоге получается строка такого вида:
Это непосредственно перед выполнением.
"c:\Program Files\WinRAR\rar.exe a -r -rr5p -idp -m0 e:\Dir1\File1 z:\ > e:\Dir1\File1.lst"
Правильность строки, путей имен файлов проверена. Эта строка в запуске из командной строки полностью отрабатывает с перенаправлением. А из WinExec нет.
← →
Gero © (2006-06-23 12:44) [7]> Правильность строки, путей имен файлов проверена.
Возможно, недостаточно проверена.
← →
Сергей М. © (2006-06-23 12:46) [8]пробуй ShellExecute() (вместо WinExec)
← →
Alex_1qaz_2006 (2006-06-23 13:07) [9]Проблема не в правильности передаваемых внешней программе параметров, а в перенаправлении вывода при запуске через WinExe !!!
← →
Gero © (2006-06-23 13:16) [10]> [9] Alex_1qaz_2006 (23.06.06 13:07)
Перенаправлением занимаешься ты или WinRar? Если второе, то проблема именно в передаче параметров.
← →
Сергей М. © (2006-06-23 13:36) [11]
> Gero © (23.06.06 13:16) [10]
> Перенаправлением занимаешься ты или WinRar?
[Win]Rar не занимается перенаправлением.
">" - это "фича" процессора консольных команд.
← →
Alex_1qaz_2006 (2006-06-23 13:50) [12]Перенаправлением потока вывода занимяюсь я.
Стандартный метод перенаправления потока еще со времен DOS"а был таким
(командная строка)
>Программа.exe [список параметров] > имя_файла_куда_перенаправить_вывод;
знак > и есть указание для перенаправления
Этот метод поддерживается всеми версиями DOS" а и Windows"а.
То есть, если у любой программы есть вывод на стандартный выходной поток, то его можно перенаправить.
В этой командной строке есть знак перенаправления вывода - ">".
c:\Program Files\WinRAR\rar.exe a -r -rr5p -idp -m0 e:\Dir1\File1 z:\ > e:\Dir1\File1.lst"
И именно это перенаправление не отрабатывает при выполнении командной строки через WinExec.
← →
Leonid Troyanovsky © (2006-06-23 17:56) [13]
> Alex_1qaz_2006 (23.06.06 13:50) [12]
> Стандартный метод перенаправления потока еще со времен DOS"а
> был таким
> (командная строка)
> >Программа.exe [список параметров] > имя_файла_куда_перенаправить_вывод;
Еще раз, медленно.
Со времен доса этим занимался интерпретатор комстроки,
например, command.com.
Т.е., пускать надо
cmd /c "Программа.exe" > "имя_файла_куда_перенаправить_вывод"
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c