2011-09-14 28 views
1

可能性の重複:
Vbscript - Read ini or text file for specific sectionVBScriptを使用してiniファイルを読み取る方法は?

私は他のPCのIPアドレスにアクセスできるかどうかをチェックしようとしています。 IPaddressが静的である場合、次のコードはokです。

Dim Shell, strCommand, strHost, ReturnCode 
strHost = "192.168.10.1" 
Set Shell = wscript.createObject("wscript.shell") 
strCommand = "ping -n 1 -w 300 " & strHost 
ReturnCode = Shell.Run(strCommand, 0, True) 
If ReturnCode = 0 Then 
wscript.echo strHost & " is pingable" 
Else 
wscript.echo strHost & " is not pingable" 
End If 

私は、動的IPアドレスを確認したいと

VBScriptコードは、iniファイルを使用します。

[IPaddress] 
IP001 = "192.168.10.1"; 
IP002 = "192.168.10.2"; 

iniファイル、私はiniファイルとVBScriptコードを接続する方法を知っていただきたいと思います。 それを私に説明してください。

+1

VBScriptに組み込まれている機能はありません。唯一の方法はプレーンなFSOを使用し、自分でファイルしてください。 –

+0

そのための便利なプロジェクト:[INI Reader/Writer Class](http://www.codeproject.com/KB/files/VB_NET_INIFile_Object.aspx) –

+0

[この回答を確認](http://stackoverflow.com/questions/) 3491965/vbscript-read-in-file-specific-section/7469754#7469754)必要なものを処理し、かなり柔軟性があります。 。 –

答えて

1

Shadow Wizardが彼のコメントで言及しているように、FSO(FileSystemObject)を使用してファイルを読み取る必要があります。 OpenTextFileのサンプルコードは、おそらく開始するのに適しています。

現在のvbscriptコードをSubに移動して、1つのIPアドレスを引数として受け入れる場合、ファイル内の各IPアドレスに対してそのサブパケットを呼び出すことができます。

たぶん、このようなもの(完全にテストされていないコード):

Const ForReading = 1 
Set MyFile = fso.OpenTextFile(FileName, ForReading) 
Do While MyFile.AtEndOfStream <> True 
    line = MyFile.ReadLine 
    If Left(line, 2) = "IP" Then 
     ipAddress = Replace(Replace(Right(line, 8), ";", ""), """", "") 
     YourSubThatPings ipAddress 
    End If 
Loop 
MyFile.Close 

lineからipAddressを取得するコードは、おそらくしかし、もう少し柔軟に書き換える必要があります。そしてiniファイルに他の多くのデータが含まれている場合は、正しいセクションにスキップするコードを追加する必要があるかもしれません。

関連する問題