2011-11-03 103 views
0
<script language="VBScript"> 
Option Explicit 
' On Error Resume Next 


Dim colIPResults, objFile, objFSO, objNIC, objWMI, objWSHNetwork, strAddresses, strIPAddress, strWQL 
Const FOR_APPENDING = 8 

Sub DestroyObjects() 
If IsObject(objFile) Then Set objFile = Nothing 
If IsObject(objFSO) Then Set objFSO = Nothing 
If IsObject(objWMI) Then Set objWMI = Nothing 
If IsObject(objWSHNetwork) Then Set objWSHNetwork = Nothing 
' If IsObject() Then Set = Nothing 
End Sub 


Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objWSHNetwork = CreateObject("WScript.Network") 
Set objWMI = GetObject("WinMGMTS:root\cimv2") 
Set StrComputer = objWSHNetwork.Computername 
strWQL = "SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'True'" 
Set colIPResults = objWMI.ExecQuery(strWQL) 
For Each objNIC In colIPResults 
For Each strIPAddress in objNIC.IPAddress 
If strAddresses = "" Then 
strAddresses = strIPAddress 
Else 
strAddresses = strAddresses 
End If 
Next 
Next 

Document.write("PC Tag Number: " + StrComputer) 

If strAddresses ="0.0.0.0" Or strAddresses ="" or strAddresses = "undefined" Then 
    Document.write("No Connection Detected") 
Else 
    Document.write "Network Address - "+ strAddresses 
End If 

DestroyObjects() 
</script> 

它一直告訴我變量是未定義的!VBScript未定義變量錯誤

回答

4

你從未宣佈過strComputer的第6行

要在這裏詳細一點(爲strComputer的變量),您使用的是顯式的選項,這意味着在使用之前必須聲明所有變量即使我們在VBScript中。因此,您必須在第6行的Dim語句中包含StrComputer。

Dim colIPResults,objFile,objFSO,objNIC,objWMI,objWSHNetwork,strAddresses,strIPAddress,strWQL,StrComputer。

另外,您似乎已將命名約定更改爲使用大寫首字母而非小寫字母(StrComputer vs. strComputer)。雖然您可以根據自己的需要命名,但您可能希望保持一致,這樣您在閱讀完代碼後看起來仍然看起來不錯。

+0

聲明?請解釋。我以爲我通過陳述集 –

+0

我更新了迴應,以解釋爲什麼你在VBScript中看到這個錯誤。 – Carth