2012-03-16 13 views
0

私はかなり新しいvbsです。私はインストールされているプログラムのバージョンを確認し、必要に応じてそれを更新するスクリプトを書いています。私はフォルダ内の更新を持っており、正しい番号を確認するためにkbnumberとタイトルをチェックします。VBscript 800a0414エラーとスクリプトインストールのアップデート

次の行にエラーコード800a0414が表示されています。私はどこにでも見ていて、かっこを置いたり、電話をかけたりするさまざまな方法を試しました。ここでまた

Else InStr(1, update.title, "Internet Explorer 8", vbtextcompare) > 0 Then 
     Installed = installHotFix(ie9RegExp) 

あなたはこれを見て、それを私に助けることができる場合、コンパイラは、上記の問題に立ち往生するので、それが動作する場合、私が言うことができません。 800a0414が解決されたら、別の質問でサイトを洪水させたくありません。私は事前に感謝します。

Set ie7RegExp = "^IE7.*strKBNumber.*" 
Set ie8RegExp = "^IE8.*strKBNumber.*" 
Set ie9RegExp = "^IE9.*strKBNumber.*" 

If InStr(1, update.title, "Internet Explorer", vbtextcompare) > 0 Then 
    If InStr(1, update.title, "Internet Explorer 6", vbtextcompare) > 0 Then 
      Installed = installHotFix(ie7RegExp) 
      myRegExp = ie7RegExp 

    ElseIf InStr(1, update.title, "Internet Explorer 7", vbtextcompare) > 0 Then 
      Installed = installHotFix(ie8RegExp) 
      myRegExp = ie8RegExp 

    Else InStr(1, update.title, "Internet Explorer 8", vbtextcompare) > 0 Then 
      Installed = installHotFix(ie9RegExp) 
      myRegExp = ie9RegExp 

Function installKB(strKBNumber) 

Dim myRegExp 

myRegExp.IgnoreCase = True 
myRegExp.Pattern = strKBNumber 
installHotFix(myRegExp) 

End Function 

Function installHotFix(objRegExp) 

Dim result 
Dim hotfixDir 

installKB = false 

For each hotfixdir in arrHotfixlocations 
    if objFSO.FolderExists(hotfixDir) Then 
     result = SearchForHotfixes(objRegExp, hotfixDir) 
     if result = True Then 
      installKB = True 
     End If 
    End If 
Next 
End Function 

Function SearchForHotfixes(objRegExp, strFolderName) 
Dim file 
Dim subFolder 
dim result 

SearchForHotfixes = false 

For Each file in objFSO.GetFolder(strFolderName).Files 
    If objRegExp.Test(file.name) Then 
     installUpdate(file) 
     SearchForHotfixes = true 
    End If 
Next 

For Each subFolder in objFSO.GetFolder(strFolderName).subFolders 
    result = SearchForHotfixes(objRegExp, subFolder) 
    If result = true then 
     SearchForHotfixes = true 
    End If 
Next 

End Function 

これは私が変更した部分ですが、上記の古いスクリプトが追加されました。だから、私が助けてくれるようもっと多くのコードや説明が必要な場合は、聞いてみてください。しかし、これはすべてだと思います。 InStr(1, update.title, "Internet Explorer 8", vbtextcompare) > 0を:あなたはその後、論理テストを持っているよう

答えて

1

Else InStr(...

ElseIfであるべき。

あなたはフォールスルーあなたは

Else 
    Installed = installHotFix(ie9RegExp) 
    myRegExp = ie9RegExp 
+0

はどうもありがとうございまし必要な前elseifと一致していない何のためにしたい場合は、それは私がオーバーに見えた...それを実行する簡単なものだった考え出し...コンパイラはフィットをスローしませんでしたが、スクリプトはis9RegExp = "^ IE9。* strKBNumber。*"のようになりませんでした。私はそれが必要なIEのパッチをもたらすだろうと私はthogutht。あなたが考えることがあれば、私はそれを感謝するでしょう – Garrett

+1

それは正規表現の文字列ですので、 '= 'ではないRegExpオブジェクトを使用する必要があります。http://stackoverflow.com/questions/361248/regular-expressions-in-vbscriptより簡単なパターンマッチング 'Like'参照http://msdn.microsoft.com/en-us/library/swf8kaxw(v=vs.71).aspx(これはVBScriptのドキュメントではありませんが同じです) –