cscript.exe ini.vbs "PATH" セクション名 エントリ名 で、値を echo します。バッチファイルを使うならば、同じディレクトリに ini.bat を作成して、@echo off cscript.exe //NOLOGO "%~dp0ini.vbs" "%1" %2 %3とすると、パスの通ったディレクトリに両方置いて、"ini" というコマンドの出来上がりです エラーメッセージは、イベントビュアーの『アプリケーション』に記録されます
' ログ出力用 Set WshShell = WScript.CreateObject("WScript.Shell") ' 使用方法の表示 if Wscript.Arguments.Count = 0 then Wscript.Echo "Usage : cscript.exe ini.vbs ""PATH"" section entry" Wscript.Echo "例 : cscript.exe ini.vbs ""c:\php\php.ini"" php error_reporting" Wscript.Quit end if ' ファイルシステムアクセス用 Set Fs = CreateObject( "Scripting.FileSystemObject" ) ' 引数の数をチェック( パス セクション エントリ ) if Wscript.Arguments.Count <> 3 then ' 引数の数が誤っている場合は終了 WshShell.LogEvent 1, "引数の数が誤っています" Wscript.Quit end if ' ファイルを開く on error resume next Set InObj = Fs.OpenTextFile( Wscript.Arguments(0), 1 ) if Err.Number <> 0 then ' ファイルアクセスエラーの場合は終了 WshShell.LogEvent 1, Err.Description & ":" & Wscript.Arguments(0) Wscript.Quit end if on error goto 0 ' 検索処理用のフラグ search = false ' 読込みループ Do While not InObj.AtEndOfStream ' 行単位の読込み Buffer = InObj.ReadLine ' 空の行は無視する if Trim(Buffer) <> "" then ' 対象セクションを発見した場合 if Ucase(Trim(Buffer)) = "[" & Ucase(Wscript.Arguments(1)) & "]" then search = true else ' 一度発見した場合は同じセクションは無いのでこちらへ ' 発見してない場合もこちらに来ますが、search が true なら発見済み if search then ' 次のセクションを発見した場合は、該当するエントリが無い事を示す if Left(Trim(Buffer),1) = "[" then ' 処理を終了する為、ループを終了する WshShell.LogEvent 1, "指定されたエントリを発見できませんでした:" & Wscript.Arguments(2) Exit Do end if ' 先頭行がセミコロンの場合は、コメントとみなします RealLine = Split(Buffer,";") ' セミコロンがあった場合、RealLine(0) は空です Entry = Split(RealLine(0),"=") ' 通常行の場合、= が見つかればエントリです if ( Ubound(Entry) = 1 ) then ' エントリが検索対象かどうかをチェック if Ucase(Trim(Entry(0))) = Ucase(Wscript.Arguments(2)) then ' 一致した場合のみ値を表示 Wscript.Echo(Trim(Entry(1))) ' ファイルを閉じて終了する InObj.Close Wscript.Quit End if end if end if end if end if Loop ' ここは、検索対象が発見できなかった場合の終了です InObj.Close if search then WshShell.LogEvent 1, "指定されたエントリを発見できませんでした:" & Wscript.Arguments(2) else WshShell.LogEvent 1, "指定されたセクションを発見できませんでした:" & Wscript.Arguments(1) end if Wscript.Echo
タグ:VBScript
【VBScript関連のカテゴリ】