배치 스크립트 - 문자열

배치 스크립팅에서 문자열에 대한 소개

안녕하세요, 야심 찬 프로그래머 여러분! 오늘 우리는 배치 스크립팅의 fascinaning 세계로 점프할 것입니다. 여러분의 친절한 이웃 컴퓨터 선생님이자 저는 이 여정을 안내해 드리게 되어 기쁩니다. 코드를 한 줄도 작성한 적이 없으신 분들도 걱정 마세요 - 우리는 아주 처음부터 시작하죠!

Batch Script - Strings

문자열(String)은 간단히 말해 문자의序列입니다. 단어, 문장, 심지어는 전체 문단일 수도 있습니다. 배치 스크립팅에서는 문자열을 메시지를 표시하거나 정보를 저장하고 텍스트를 조작하는 데 자주 사용합니다.

기본 문자열 연산

문자열 표시

가장 기본적인 연산에서 시작해 보겠습니다 - 문자열을 표시하는 것. 배치에서는 echo 명령을 사용합니다.

@echo off
echo Hello, World!
pause

이를 hello.bat로 저장하고 실행하면 "Hello, World!"가 화면에 표시됩니다. 맨 앞의 @echo off은 스크립트 출력을 깨끗하게 유지하는 좋은 관행이며, 끝에 있는 pause는 창을 열어 두어 결과를 볼 수 있도록 합니다.

문자열을 변수에 저장

이제 문자열을 변수에 저장해 보겠습니다:

@echo off
set message=Hello, Batch scripting!
echo %message%
pause

여기서 우리는 set 명령을 사용하여 문자열을 message라는 변수에 저장하고 있습니다. 변수를 사용할 때는 백퍼센트 기호로 둘러싸습니다.

문자열 결합

문자열을 함께 결합하는(결합) 연산은 흔한 작업입니다. 배치에서는 문자열을 옆에 두는 것만으로 간단히 할 수 있습니다:

@echo off
set firstName=John
set lastName=Doe
set fullName=%firstName% %lastName%
echo Full name: %fullName%
pause

이 스크립트는 "Full name: John Doe"를 출력합니다. %firstName%%lastName% 사이에 공백을 추가하여 이름을 구분했습니다.

사용자 입력과의 상호작용

우리의 스크립트를 상호작용적으로 만들기 위해 사용자로부터 입력을 받아 보겠습니다:

@echo off
set /p name=What's your name?
echo Nice to meet you, %name%!
pause

/p 스위치와 함께 set 명령을 사용하여 사용자에게 입력을 요청합니다. 이 스크립트를 실행하고 이름을 입력해 보세요!

문자열 조작

부분 문자열 추출

배치는 %variable:~start,length% 문법을 사용하여 문자열의 일부를 추출할 수 있습니다:

@echo off
set message=Hello, World!
echo %message:~0,5%
echo %message:~7,5%
pause

이는 다음과 같이 출력합니다:

Hello
World

첫 번째 echo는 위치 0에서 5자리까지의 문자를 추출하고, 두 번째는 위치 7에서 5자리 이후의 문자를 추출합니다.

문자열 교체

문자열의 일부를 교체할 수도 있습니다:

@echo off
set phrase=The quick brown fox jumps over the lazy dog
echo %phrase:fox=cat%
pause

이는 "fox"를 "cat"으로 교체합니다.

고급 문자열 연산

문자열 길이

배치에는 문자열 길이를 얻는 내장 함수가 없지만, 지능적인 우회 방법을 사용할 수 있습니다:

@echo off
set string=Hello, World!
call :strLen string strlen
echo The length of "%string%" is %strlen%
pause
goto :eof

:strLen
setlocal enabledelayedexpansion
set "s=!%~1!"
set "len=0"
for %%N in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%N,1!" neq "" (
set /a "len+=%%N"
set "s=!s:~%%N!"
)
)
endlocal & set %~2=%len%
goto :eof

이 스크립트는 :strLen 함수를 정의하여 문자열의 길이를 계산합니다. 복잡하지만, 배치에서 강력한 도구를 만드는 방법을 보여줍니다.

대소문자 변환

배치에는 내장된 대소문자 변환 기능이 없지만, for 명령과 /L 옵션을 사용하여 이를 달성할 수 있습니다:

@echo off
set string=Hello, World!
call :toUpper string result
echo Upper case: %result%
call :toLower string result
echo Lower case: %result%
pause
goto :eof

:toUpper
for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set %2=%%%2:%%a=%%a%%%
goto :eof

:toLower
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call set %2=%%%2:%%A=%%a%%%
goto :eof

이 스크립트는 :toUpper:toLower 함수를 정의하여 대소문자 변환을 수행합니다.

결론

축하합니다! 지금까지 배치 스크립팅의 문자열 조작 세계로的第一步을 냈습니다. 기억하시길, 연습이 완벽을 이루는 것이니, 이 개념들을 실험해 보지 마세요. 오늘 배운 다양한 기술들을 결합하여 독특한 스크립트를 만들어 보세요.

마무리로, 문자열 연산을 요약한 표를 제공합니다:

연산 문법 예제
문자열 표시 echo string echo Hello, World!
문자열 저장 set variable=string set message=Hello
결합 set result=%string1% %string2% set fullName=%firstName% %lastName%
사용자 입력 set /p variable=prompt set /p name=What's your name?
부분 문자열 %variable:~start,length% %message:~0,5%
문자열 교체 %variable:old=new% %phrase:fox=cat%

계속 코딩하고, 배우고, 배치 스크립팅을 즐기세요!

Credits: Image by storyset