[BAT] ini 파일 읽기

ini 파일의 구조는 아래와 같다고 가정

INI_FileName.ini
[SectionValue]
Entry1="엔트리1"
Entry2="두번째 엔트리"


출처 - http://lallouslab.net/2018/07/23/batchography-parsing-ini-files-from-a-batch-file/

:: 출처 - http://lallouslab.net/2018/07/23/batchography-parsing-ini-files-from-a-batch-file/

@echo off
	:: 
	:: The Batchography book by Elias Bachaalany
	::
:main
	setlocal enabledelayedexpansion

	call :get-ini INI_FileName.ini SectionValue Entry1 result
	echo r=%result%

	call :get-ini INI_FileName.ini SectionValue Ectry2 result
	echo r=%result%

	pause

	goto :eof



:get-ini <filename> <section> <key> <result>
set %~4="Can't get value from ini file."
set insection=
setlocal
	for /f "usebackq eol=; tokens=*" %%a in ("%~1") do (
		set line=%%a
		if defined insection (
			for /f "tokens=1,* delims==" %%b in ("!line!") do (
				if /i "%%b"=="%3" (
					endlocal
					set %~4=%%c
					goto :eof
				)
			)
		)

		if "!line:~0,1!"=="[" (
			for /f "delims=[]" %%b in ("!line!") do (
				if /i "%%b"=="%2" (
					set insection=1
				)else (
					endlocal
					if defined insection goto :eof
				)
			)
		)
	)

	goto :eof
endlocal

댓글

이 블로그의 인기 게시물

[NSIS] 32비트와 64비트 모듈 등록하는 법. (regsvr32)

[Visual Studio] Windows 7 에서 Visual Studio 6.0 디버그 시 프로세스 좀비되는 증상 해결 방법