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

Вниз

Запуск внешнего приложения   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.033 c
15-1149509503
depo
2006-06-05 16:11
2006.07.09
строки


2-1150802031
Koder
2006-06-20 15:13
2006.07.09
Поиск по базе


1-1148540768
novill
2006-05-25 11:06
2006.07.09
Как избежать варинига при создании объекта в try finally


15-1149690012
Iehbr
2006-06-07 18:20
2006.07.09
Как Вы относитесь к спаму на "физические" почтовые ящики?


2-1150484567
Glivera
2006-06-16 23:02
2006.07.09
Работа с екселем