SQLの窓

2013年12月30日


VBScript : ini ファイルの値を取得する

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
posted by lightbox at 2013-12-30 05:16 | VBS + オブジェクト | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり