2016-08-25 8 views
0

コマンドを実行して必要な出力を取得しますが、この出力データから必要なパラメータ値を取得する必要があります。問題が必要です。パラメータ名は2桁で表示されますので、私は最初のオカレンスの代わりに常に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

私はこの(51、37を実行すると、私はエラーを取得します)Microsoft VBScriptコンパイルエラー:予期したステートメントの末尾 –

答えて

0

あなたの素朴な条件

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

は "部品番号" と「システムの両方に当てはまりますボードスペア部品番号 "のため、StrPNoが2回設定されています。位置を確認する条件を変更します。

更新:

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

行方不明のエフェクト。私はあなたの提案を試みたが、私はまだ同じ出力。 InStr(1、StrTest、 "Part Number")> 1 – HULK

+0

これは運が問題ではありません。 –

+0

申し訳ありませんエケハード、私はまだできませんでした。私はそれを把握することができないので、ポジション1を変更する必要がある場所を説明してください。 – HULK

関連する問題