「sh run |」を送信するスクリプトを作成しようとしています。 bインターフェイスをCiscoスイッチに接続します。出力を配列に書き込みます。その配列をvbcrで分割し、configの各行が配列の別の要素に入るようにします。vbscriptシスコのスイッチインターフェイスを読み取る
私は多くの方法で猫の皮を剥がそうとしましたが、まだ私は苦労しています。英語で
ロジック: 予想ラインインタフェースのスイッチ マッチの「インタフェースの名前と対応する番号を「これは、それぞれの下で必要とされているラインである 'を定義配列 に出力をキャプチャCiscoデバイスへ をコマンドを送信しますそれをファイルに書き出します。予想 内の特定の行のために、そのインタフェースの下 チェック、それはそれを見つけた場合、それが見つからない場合は、「YES」 を行&を書くライン&を書く「NO」 そうしないまでこれをやっておいてください'[AZ] ^インターフェース\ S [FG] +' すべての詳細を見つける
出力は次のようになります。 インターフェイスのGigabitEthernet 0/2 スパニングツリーPortFast、YES
をこのサンプルコードでありますは失敗しています:
'These are the expected line (not being compared in the script below but is my intention to have it compare the matched elements)
Dim vExpectedINT(4)
vExpectedINT(0) = "spanning-tree portfast"
vExpectedINT(1) = "switchport access vlan 17"
vExpectedINT(2) = "switchport mode access"
vExpectedINT(3) = "ip mtu 1400"
'objStream.Write "######################################################### " & vbcrlf
'objStream.Write "# I N T E R F A C E # " & vbcrlf
'objStream.Write "######################################################### " & vbcrlf
nCount = 0
vConfigLines = Split(strResultsINT, vbcr)
Set re = new RegExp
re.Global = False
re.IgnoreCase = True
re.Multiline = False
re.Pattern = "^interface [FG]"
' Regex Ex Definition
Set re2 = new RegExp
re2.Global = False
re2.IgnoreCase = True
re2.Multiline = False
re2.Pattern = "\sspanning-tree\sportfast"
' Regex Ex Definition
Set re3 = new RegExp
re3.Global = False
re3.IgnoreCase = True
re3.Multiline = False
re3.Pattern = "ip\smtu\s1400"
Set re4 = new RegExp
re4.Global = False
re4.IgnoreCase = True
re4.Multiline = False
re4.Pattern = "!"
' Compares the information
x = 1
Do While x <= Ubound(vConfigLines) - 1 do
MsgBox chr(34) & strLine & chr(34)
If re.Test(vConfigLines(x)) Then
' Write data to not expected section
x=x+1
do
If ! re4.Test(vConfigLines(x)) Then
MsgBox vConfigLines(x)
'objStream.Write vConfigLines(x) & vbcr
elseif re2.Test(vConfigLines(x)) Then
MsgBox vConfigLines(x)
elseif re3.Test(vConfigLines(x)) Then
MsgBox vConfigLines(x)
else
exit do
end if
x=x+1
loop
end IF
End If
Loop
これは、vConfigLines出力のサンプルです。
スイッチあたり48個のポートがあります。困難かつ複雑なタスクに直面したとき
interface FastEthernet1/0/1
switchport access vlan 127
switchport mode access
switchport voice vlan 210
srr-queue bandwidth share 10 10 60 20
srr-queue bandwidth shape 0 3 0 0
priority-queue out
mls qos trust cos
auto qos voip trust
spanning-tree portfast
!
interface FastEthernet1/0/2
switchport access vlan 127
switchport mode access
switchport voice vlan 210
srr-queue bandwidth share 10 10 60 20
srr-queue bandwidth shape 0 3 0 0
priority-queue out
mls qos trust cos
auto qos voip trust
spanning-tree portfast
!
interface FastEthernet1/0/3
switchport access vlan 127
switchport mode access
switchport voice vlan 210
srr-queue bandwidth share 10 10 60 20
srr-queue bandwidth shape 0 3 0 0
priority-queue out
mls qos trust cos
auto qos voip trust
spanning-tree portfast