私は VBScript を初めて使用し、次のコードが機能する理由について困惑しています。
set Adapters = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
for each Nic in Adapters
if Nic.IPEnabled then
MsgBox "IP Address: " & Nic.IPAddress(asdf), 4160, "IP Address"
end if
next
変数asdf
が未定義の場合、機能します。無効なインデックス (-1 や 4 など)を定義するasdf
と、無効なインデックス エラーが発生します。
私は考えました: おそらく、未定義の変数は VBS でデフォルトで 0 になるのでしょうか? いいえ、印刷しようとしましたが、何も書かれていません。
文書化された配列の最初の項目を返す配列インデックスとして未定義の変数を渡す機能はどこにありますか? VBScript でプログラミングしているときに遭遇する可能性のある、他に似た奇妙な点にはどのようなものがありますか?
編集:私が発見したいくつかのこと:
Empty
VBScript では、未定義の変数はデフォルトで等しいEmpty = 0
本当ですNic.IPAddress(Empty)
配列の最初の要素も返しますMsgBox 0
印刷されます0
が、MsgBox Empty
何も印刷されません
Empty
配列のインデックス付けが最初の要素を返すことによって静かに処理されること、それが 0 と同等であるが 0 とは異なる方法で印刷される理由、および他の構成要素がEmpty
パラメーターを処理すること (およびそれらが結果として何をするか) を説明していることを示すドキュメントを見つけるのにまだ苦労しています。