2012-03-16 10 views
0

私はプログラムでWindows Updateを呼び出すことに関してM $ siteからの例を試しています。最後の行を実行するにはVBscript例外のように見えますが、どのように対処するのですか?

'http://msdn.microsoft.com/en-us/library/aa387102%28VS.85%29.aspx 
'http://msdn.microsoft.com/en-us/library/aa386526%28v=vs.85%29.aspx 

Set updateSession = CreateObject("Microsoft.Update.Session") 
Set updateSearcher = updateSession.CreateupdateSearcher() 

WScript.Echo "Searching for updates..." & vbCRLF 

Set searchResult = updateSearcher.Search("IsInstalled=1 and Type='Software'") 

ネットワークが壊れている場合、私はCMDウィンドウに表示されます:

C:\wu-script\wu-install.vbs(9, 1) (null): 0x8024001F 

updateSearcher.Searchは例外と全体のスクリプトが終了を投げるように思えます。この例外をキャッチするには?

私はVBScriptに慣れていません。簡単なヒントや参照URLを入力してください。

+0

0x8024001F:ネットワーク接続が動作し – Amol

答えて

1

VBScriptエラーを処理するには、On Errorステートメントを使用する必要があります。

'... 
'... 
On Error Resume Next 'enable error handling 
Set searchResult = updateSearcher.Search("IsInstalled=1 and Type='Software'") 
If Err.Number <> 0 Then 
    'right, this is a catch block :/ 
    WScript.Echo "error!" 
    'WScript.Echo Err.Description 
    'more : http://msdn.microsoft.com/en-us/library/a3c123d4(v=vs.85).aspx 
End If 
On Error Goto 0 'disable error handling 

は、あなたが見ることができるように、エラーをキャッチすることはVBScriptであまりにも面倒です。ただし、javascriptとそのtry-catchも使用できます。
サンプルWSFは、あなたが与えたスクリプトに基づいています。

WU-install.wsf CMDでruningて

<?xml version="1.0" ?> 
<package> 
<job id="Update"> 
    <script language="JScript"> 
    <![CDATA[ 
     //http://msdn.microsoft.com/en-us/library/aa387102%28VS.85%29.aspx 
     //http://msdn.microsoft.com/en-us/library/aa386526%28v=vs.85%29.aspx 
     var updateSession = WScript.CreateObject("Microsoft.Update.Session"); 
     var updateSearcher = updateSession.CreateupdateSearcher(); 
     WScript.Echo("Searching for updates..."); 
     try { 
      var searchResult = updateSearcher.Search("IsInstalled=1 and Type='Software'"); 
     } catch(err){ 
      WScript.Echo("error!"); 
      //WScript.Echo(err.message); 
      // more : http://msdn.microsoft.com/en-us/library/dww52sbt(v=vs.85).aspx 
     } 
    ]]> 
    </script> 
</job> 
</package> 


C:\wu-script>cscript wu-install.wsf 
+0

偉大な答えを終えることがありません。豊富な情報 –

関連する問題