2011-12-17 6 views
1

私はssh経由でコマンドを実行しようとしていると、コマンドラインのリターンの一部を返す返されたコマンドの最初の部分のみを取り、使用される変数として設定します。私はRegExpを使用しようとしています。最初の4桁しか必要ないので、パターンコード "^ \ d {1,4}"を使用します。VBSは、正規表現

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 

を取得したいものを取得していますかどうかを確認するためにエコーときコードを私に教えてください。あなたが何かを知っているなら、私はそれを感謝します。シェルスクリプトを使って私が探しているものを手に入れることができますが、このVBSをウィンドウで実行する必要があります。誰でもVBSに翻訳できるシェルスクリプトがあります。

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

事前に任意の助けに感謝...しばらくの間、この1に私の脳をラッキングされてアウト火傷。

答えて

0

あなたは.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