2016-08-25 3 views
0

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

выход команды:

Product Name: DellRack81 
Part Number: QAWSX 
System Board Spare Part Number: 01032-001

из вышеприведенного вывода, я хотел бы получить "Part Number:" значение, но код возвращает значение "Board System Spare Part Number".

результат получать сейчас:

Product Name Part Number System Board Spare Part Number 
DellRack81  01032-001  01032-001

, что я пытаюсь за это:

Product Name Part Number System Board Spare Part Number 
DellRack81  QAWSX   01032-001
+0

Я получаю сообщение об ошибке, когда я запускаю этот (51, 37) Ошибка компиляции Microsoft VBScript: Ожидаемый конец заявления –

ответ

0

Ваше наивным состояние

InStr(1,StrTest,"Part Number") > 0 

верно для обоих и «System "Part Number" Board Spare Part Number ", поэтому StrPNo установлен в два раза. Измените условия для проверки на позицию .

Update:

Option Explicit 

Dim a : a = Split("Product Name: DellRack81|Part Number: QAWSX|System Board Spare Part Number: 01032-001", "|") 
ReDim b(2) 
Dim s 
For Each s In a 
    WScript.Echo s 
    If InStr(1, s,"Product Name:") = 1 Then b(0) = UCase(Trim(Mid(s,(InStr(1,s,":",1)+2)))) 
    If InStr(1, s,"Part Number:") = 1 Then b(1) = UCase(Trim(Mid(s,(InStr(1,s,":",1)+2)))) 
    If InStr(1, s,"System Board Spare Part Number:") = 1 Then b(2) = UCase(Trim(Mid(s,(InStr(1,s,":",1)+2)))) 
Next 
WScript.Echo Join(b, vbCrLf) 

выход:

cscript 39146660.vbs 
Product Name: DellRack81 
Part Number: QAWSX 
System Board Spare Part Number: 01032-001 
DELLRACK81 
QAWSX 
01032-001 

(вы не должны использовать эту стратегию на работе)

+0

Не повезло Ekkehard. Я попробовал ваше предложение, но я все равно получаю такой же результат. InStr (1, StrTest, «Part Number»)> 1 – HULK

+0

Дело не в удаче. –

+0

Извините Эккехарда, я все еще не мог. Можете ли вы объяснить/показать, где мне нужно внести изменения, ищите позицию 1, так как я не могу это понять. – HULK

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