VBS返回部分命令行返回RegEx

时间:2011-12-17 18:52:06

标签: regex shell vbscript command

我正在尝试通过ssh执行命令,只获取返回命令的第一部分,并将其设置为要使用的变量。我正在尝试使用RegExp,因为我只需要前4位数,我使用模式代码“^ \ d {1,4}”我可以通过此代码成功获得整个返回;

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

但是现在当我尝试使用RegExp和echo来查看我是否得到了我想要的东西时,我得到了“类型不匹配”错误

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}’`..............

提前感谢任何帮助......在这一段时间里我的脑子已经绞尽脑汁并且被烧毁了。

1 个答案:

答案 0 :(得分: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