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>

它一直告诉我变量未定义!

(StrComputer 的变量)

4

1 回答 1

3

您从未在第 6 行声明 StrComputer。

在这里详细说明一下,您使用了 Option Explicit,这意味着您必须在使用它们之前声明所有变量,即使我们在 VBScript 中也是如此。因此,您必须在第 6 行的 Dim 语句中包含 StrComputer。

暗色 colIPResults、objFile、objFSO、objNIC、objWMI、objWSHNetwork、strAddresses、strIPAddress、strWQL、StrComputer。

此外,您似乎已更改命名约定以使用大写首字母而不是小写(StrComputer 与 strComputer)。尽管您当然可以随心所欲地命名它,但您可能希望保持一致,这样您就不会得到在阅读时仍然看起来正确的错误代码。

于 2011-11-03T20:06:41.050 回答