Перейти к содержимому

Фотография

QTP 9.2> запуск exe-файла с несколькими параметрами


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Anthony_BY

Anthony_BY

    Новый участник

  • Members
  • Pip
  • 29 сообщений
  • Город:Минск

Отправлено 24 марта 2008 - 20:23

Требуеться запустить exe-файл с некоторыми параметрами
e.g.:
C:\afptools\afpdump.exe /h Test.afp > Test.txt
Пишу код:
SystemUtil.Run "C:\afptools\afpdump.exe", "/h Test.afp > Test.txt"
Не срабатывает

Варианты:
sParameter = " /h SortTest.afp > Test.txt"
SystemUtil.Run "C:\afptools\afpdump.exe", sParameter
Так же не срабатывает.
sParameter = " /h"& "Test.afp"& ">"& "Test.txt"
SystemUtil.Run "C:\afptools\afpdump.exe", sParameter
не срабатывает
Помогите советом.
  • 0

#2 slat

slat

    Новый участник

  • Members
  • Pip
  • 69 сообщений
  • Город:Odessa

Отправлено 25 марта 2008 - 08:09

В SystemUtil.Run строка в качестве параметра должна быть указана целиком должно сработать
SystemUtil.Run "C:\afptools\afpdump.exe /h Test.afp > Test.txt"

  • 0

#3 Anthony_BY

Anthony_BY

    Новый участник

  • Members
  • Pip
  • 29 сообщений
  • Город:Минск

Отправлено 25 марта 2008 - 08:15

В SystemUtil.Run строка в качестве параметра должна быть указана целиком должно сработать

SystemUtil.Run "C:\afptools\afpdump.exe /h Test.afp > Test.txt"

Run Error
Invalid procedure call or argumet
  • 0

#4 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 25 марта 2008 - 09:56

не срабатывает
Помогите советом.


А каким образом не срабатывает?
Та же строка, запущенная в cmd работает?
Попробуйте прописать полные пути к файлам в строке параметров
  • 0

#5 Anthony_BY

Anthony_BY

    Новый участник

  • Members
  • Pip
  • 29 сообщений
  • Город:Минск

Отправлено 25 марта 2008 - 10:06

А каким образом не срабатывает?
Та же строка, запущенная в cmd работает?
Попробуйте прописать полные пути к файлам в строке параметров

с cmd работает.
полноя строка не помогла.
ошибка вида:
AFP0003: error opening Files\XStream\Server\Compart\programs\afptools\Test.txt //Странно что txt
  • 0

#6 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 25 марта 2008 - 10:24

А каким образом не срабатывает?
Та же строка, запущенная в cmd работает?
Попробуйте прописать полные пути к файлам в строке параметров

с cmd работает.
полноя строка не помогла.
ошибка вида:
AFP0003: error opening Files\XStream\Server\Compart\programs\afptools\Test.txt //Странно что txt


Если бы попробовали с полными путями так, как Вы их прописали в QTP, то получили бы тоже самое сообщение.
systemUtil.run Путь_к_Файлу, Параметры.
QTP знает, что первый параметр - путь к файлу, видимо поэтому там пробелы в пути к файлу корректно обрабатываются. А вот в строке параметров пробелы не обрабатываются никак. Соответственно, если Ваша строка содержит пути с пробелами, то они в таком виде и подставляются в исполняемую строку.
В результате QTP аытается из коммандной строки запустить что-то вроде:
"C:\afptools\afpdump.exe" /h Test.afp > C:\Program Files\XStream\Server\Compart\programs\afptools\Test.txt
и пробел в пути к файлу Test.txt оказывается камнем преткновения.
Правильно будет так:

appPath =  chr(34) & "C:\afptools\afpdump.exe" & chr(34)
pathTo_afp_file = chr(34) & "ПУТЬ С ПРОБЕЛАМИ\Test.afp" & chr(34)
pathTo_txt_file = chr(34) & "ПУТЬ С ПРОБЕЛАМИ\Test.txt" & chr(34)
parameters = "/h " & pathTo_afp_file & " > " & pathTo_txt_file 
SystemUtil.Run appPath, parameters

  • 0

#7 Anthony_BY

Anthony_BY

    Новый участник

  • Members
  • Pip
  • 29 сообщений
  • Город:Минск

Отправлено 25 марта 2008 - 11:48

appPath =  chr(34) & "C:\afptools\afpdump.exe" & chr(34)
pathTo_afp_file = chr(34) & "ПУТЬ С ПРОБЕЛАМИ\Test.afp" & chr(34)
pathTo_txt_file = chr(34) & "ПУТЬ С ПРОБЕЛАМИ\Test.txt" & chr(34)
parameters = "/h " & pathTo_afp_file & " > " & pathTo_txt_file 
SystemUtil.Run appPath, parameters

Благодарю за ответ, но проблема остаёться.
Попробовал закинуть в папку без пробела, результат тот же.
Возможно трудность с распознанием знака больше, заменил его на chr(62).
Упростил проблему до:
C:\afptools\afpdump.exe > Test
с командной строки работает, и создает файл Test без расширения.
pathTo_txt_file =   "> Test"
SystemUtil.Run "C:\afptools\afpdump.exe", pathTo_txt_file
fail
pathTo_txt_file =   ">" & "Test"
parameters =  pathTo_txt_file
SystemUtil.Run "C:\afptools\afpdump.exe", parameters
fail
pathTo_txt_file =   chr(62) & "C:\afptools\Test.txt"
parameters =  pathTo_txt_file
SystemUtil.Run "C:\afptools\afpdump.exe", parameters
скланяюсь к мысли что это всё таки проблема QTP
тестировал с одним параметром, используя ping.exe, всё работает хорошо.
  • 0

#8 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 25 марта 2008 - 13:33

скланяюсь к мысли что это всё таки проблема QTP
тестировал с одним параметром, используя ping.exe, всё работает хорошо.

Сдается мне, что это даже скорее не QTP-шная проблема, а фича/бага Windows Script Host.
Дело не в количестве параметров, а именно в перенаправлении потока вывода в отдельный файл. Я пробовал с несколькими параметрами - все отлично работает до момента, когда я пытаюсь перенаправить исходящий поток в любой файл. Я попробовал сделать то же самое через WshShell.Exec. Результат оказался ровно таким же. Команды выполняются, поток в файл перенаправить не удается.
В Вашей ситуации рекомендую создать батник с Вашей командой и запускать его. Если имена файлов должны изменяться, то сделайте батник с одним параметром - путем к файлу вывода.
  • 0

#9 Anthony_BY

Anthony_BY

    Новый участник

  • Members
  • Pip
  • 29 сообщений
  • Город:Минск

Отправлено 25 марта 2008 - 13:58

скланяюсь к мысли что это всё таки проблема QTP
тестировал с одним параметром, используя ping.exe, всё работает хорошо.

Сдается мне, что это даже скорее не QTP-шная проблема, а фича/бага Windows Script Host.
Дело не в количестве параметров, а именно в перенаправлении потока вывода в отдельный файл. Я пробовал с несколькими параметрами - все отлично работает до момента, когда я пытаюсь перенаправить исходящий поток в любой файл. Я попробовал сделать то же самое через WshShell.Exec. Результат оказался ровно таким же. Команды выполняются, поток в файл перенаправить не удается.
В Вашей ситуации рекомендую создать батник с Вашей командой и запускать его. Если имена файлов должны изменяться, то сделайте батник с одним параметром - путем к файлу вывода.

Павел, благодарю, видимости действительно придёться решать проблему с помощью батников.
best regards
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных