2016-08-25 3 views
0

명령을 실행하고 필요한 출력을 얻지 만이 출력 데이터에서 필요한 매개 변수 값을 가져와야합니다. 문제가 필요합니다. 매개 변수 이름은 2 개 장소에 표시되므로, 제가 가지고있는 코드는 1 번째 발생 대신 항상 2 번째 인스턴스 매개 변수 값을 반환합니다. 정확한 일치를 할 수 있는지 VBScript에서 알지 못합니다.명령 출력 매개 변수 얻기

명령 출력은 : 위의 출력에서 ​​

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

, 내가 "부품 번호 :"얻고 싶었다 값을하지만 코드는 "시스템 보드 예비 부품 번호"의 값을 반환합니다.

결과는 이제 점점 :

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

내가 오류가 (당신이 직장에서이 전략을 사용해서는 안)) Microsoft VBScript 컴파일 오류 : 예상되는 문장의 끝 –

답변

0

귀하의 순진한 상태

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

은 모두 "부품 번호"와 "시스템 마찬가지입니다 Board Spare Part Number "이므로 StrPNo이 두 번 설정됩니다. 위치가 인지 확인하십시오.

업데이트 :

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) 

출력 :이 (51, 37을 실행할 때

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

죄송합니다 Ekkehard, 나는 아직도 할 수 없습니다. 당신이 설명 할 수 없으므로 위치 1에 대한 변경을해야 할 부분을 설명하고 보여줄 수 있습니까? – HULK