2015-08-30 4 views
0

У меня есть следующая простая проблема с UFT.Неверное количество элементов для чтения с консоли с UFT

Мой Сценарий:

Dim testShell 
Set testShell = CreateObject ("wscript.shell") 
testShell.exec "cmd /K CD C:\ & Dir" 
msgbox(testShell.Exec.StdOut) 

Который дает мне следующую ошибку:

Wrong number of Arguments : 'testShell.exec' Line (4): "msgbox(testShell.Exec.StdOut)".

Я смотрел на несколько VBScripts до сих пор, и там, кажется, работает без проблем. Почему мой скрипт терпит неудачу? Я очень уверен, что это что-то очень глупое и простое, но я не вижу своей ошибки. Я просто хочу получить вывод моей оболочки в переменную, чтобы я мог работать с ней.

ответ

3

Вам нужен объект, возвращаемый .Exec, чтобы получить .StdOut и его содержание и /K должно быть /C:

>> Set testShell = CreateObject ("wscript.shell") 
>> Set oExec = testShell.exec("%comspec% /C CD C:\ & Dir") 
>> WScript.Echo oExec.StdOut.ReadAll() 
>> 
Volume in drive C has no label. 
... 
25.05.2011 19:32 <DIR>   apache-ant-1.8.2 
... 
+0

Что/C делать? Попробуйте это сейчас. – tarrasch

+2

@tarrasch - ['cmd'] (https://technet.microsoft.com/en-us/library/bb490880.aspx) создает новый командный интерпретатор. '/ k' сохраняет его после запуска команды. '/ c' закрывает его после запуска команды. – Bond

+0

Проблема решена. Благодаря ! – tarrasch

 Смежные вопросы

  • Нет связанных вопросов^_^