2011-12-17 23 views
1

我想通過ssh執行一個命令,只取回返命令的第一部分,並將其設置爲要使用的變量。我試圖使用RegExp,因爲我只需要前4位數字,我使用模式代碼「^ \ d {1,4}」我可以通過此代碼成功獲取整個返回;VBS返回部分命令行返回RegEx

Set WshShell = CreateObject("WScript.Shell") 
Set oExec = WshShell.Exec ("ssh -un -pw command") 
     Do Until oExec.StdOut.AtEndOfStream 
     ID = oExec.StdOut.ReadLine 
     Loop 
     WScript.Echo ID 

但現在當我嘗試使用正則表達式和迴音,看看我得到我想要什麼,我得到一個「類型不匹配」錯誤

Set RegExp = New RegExp 
Set WshShell = CreateObject("WScript.Shell") 
Set oExec = WshShell.Exec ("ssh -un -pw command") 
RegExp.Pattern = "^\d{1,4}" 
     Do Until oExec.StdOut.AtEndOfStream 
     ID = oExec.StdOut.ReadLine 
      WScript.Echo RegExp.execute(ID) 
     Loop 

如果任何人有任何煽動對什麼是錯與代碼請讓我知道。如果你知道任何其他的選擇,我會很感激。使用shell腳本我可以得到我在找的東西,但我需要用windows運行這個VBS。如果任何人都可以將它翻譯成VBS,那麼這裏是Shell腳本。

.............for i in `command | sed ‘1d’ | awk ‘{print $1}’`.............. 

欣賞預先任何幫助......費盡了在這一個了,而我的大腦和燙傷了。

回答

0

您不能.Echo類似於您從.Execute獲得的匹配集合的對象;訪問其第一項的.Value:

>> sInp = "1234xxx" 
>> Set reHead = New RegExp 
>> reHead.Pattern = "^\d{4}" 
>> Set oMTS = reHead.Execute(sInp) 
>> WScript.Echo oMTS(0).Value 
>> 
1234 
>> WScript.Echo oMTS 
>> 
Error Number:  13 
Error Description: Type mismatch 
+0

Oooooooooooooooooh解釋它......這正是我需要Ekkeheard!我現在能夠解析第一組數字,並將其設置爲一個變量.Value ...謝謝! – who 2011-12-18 10:07:31