Regex VBS使用正则表达式返回命令行返回的一部分

Regex VBS使用正则表达式返回命令行返回的一部分,regex,shell,vbscript,command,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

我试图通过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。下面是Shell脚本,如果有人可以将其转换为VBS

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

感谢您的帮助。。。这件事让我绞尽脑汁想了好一阵子,结果累坏了。

你不能。回显你从中获得的匹配集之类的对象。执行;访问其第一项的.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

这就解释了。。。这正是我需要听到的!!!我现在能够解析第一组数字,并将其设置为一个带有.Value的变量。。。谢谢