라벨이 BAT인 게시물 표시

[bat] bat 파일 실행 시 관리자 권한으로 실행하도록 요구하는 샘플 코드

@echo off bcdedit >>nul if %errorlevel% == 1 ( echo ▶ 관리자 권한이 아닙니다. echo ▶ 파일을 우클릭하여 관리자 권한으로 실행하십시오. pause exit ) else ( @echo off :: 관리자 권한으로 실행 되었을 경우 실행 될 코드 여기에 작성. pause exit )

[BAT] 문자열 변경

:: 문자열 변경 :: %(변수 이름):(찾을 문자)=(변경할 문자)% :: ex) :: set VarName=abc :: echo %VarName% :: "abc" 출력 :: set VarName=%VarName:a=d% :: echo %VarName% :: "dbc" 출력 :: set VarName=%VarName:b=% :: echo %VarName% :: "dc" 출력

[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 ...

[BAT] 특정 문자를 기준으로 파싱하기

:: 첫번째 '_'를 기준으로 앞 부분은 'site' 변수에 뒷 부분은 'environment' 변수에 초기화 for /f "tokens= 1* delims= _ " %%i in ( "%siteCode%" ) do ( set site=%%i set environment=%%j ) 일단 내가 이해한 정도가 정확하지 않아 설명이 틀릴수도 있음. tokens=1* 몇 개를 나눌지를 결정. 앞에 숫자는 체크할 갯수 뒤에 '*'은 문자열 맨 마지막도 포함할지 여부. 정확히 맞는지는 모르겠고 검색하면 자세한 내용이 설명된 페이지를 쉽게 찾을 수 있으니 검색을 해보길 바람. 아래는 예시. 'AB_CD_EF'를 '1*'로 하면 'AB'와 'CD_EF'로 나뉘어 짐. 'AB_CD_EF'를 '1'로 하면 'AB'만 나뉘어지고 뒷 부분은 버려짐. 'AB_CD_EF'를 '2*'로 하면 'AB'와 'CD'와 'EF'로 나뉘어 짐. 'AB_CD_EF'를 '2'로 하면 'AB'와 'CD'로 나뉘어지고 뒷 부분은 버려짐. delims=_ 나눌 구분자를 어떤 것으로 할지 결정. 'AB_CDEF'에서 '_'를 기준으로 파싱하려면 '_'를 'AB+CDEF'에서 '+'를 기준으로 파싱하려면 'delims=+'가 되어야 함. ("%siteCode...