我正在尝试通过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}’`..............
提前感谢任何帮助......在这一段时间里我的脑子已经绞尽脑汁并且被烧毁了。
答案 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