Wednesday, November 08, 2006
배치파일] 사용자 문자열 입력받기, 입력을 변수에 저장: DOS-NT Batch File Input String
배치 파일 안에서, 사용자로부터 어떤 문자열을 입력받아야 할 때에는
set /p <변수명>=
이라는 명령어를 사용하면 됩니다. 단, 윈도우2000/XP이상에서만 되고, 윈도우98에서는 되지 않습니다.
파일명: 0.bat
사용자가 키보드로 입력한 문자열이 str 이라는 변수에 저장됩니다. 변수에서 값을 꺼낼 때에는 %str% 이렇게 퍼센트 기호를 앞뒤로 붙입니다.
set /p str=
이렇게 하면 아무 문자열이나 입력하세요: 라는 문자열이 나타나지 않습니다.
실행 결과:
ABC 라는 문자열을 입력한 결과입니다.
이것은 좀더 실용적인 예제입니다. 사용자가 문자열을 입력하지 않고 그냥 엔터키만 누를 경우, 다시 입력받도록 합니다.
str 이라는 변수에 혹시 어떤 값이 이미 들어 있을 경우에는 문제가 생기므로 "set str=" 이렇게 변수를 초기화했습니다. 실은 초기화라기보다는 str 이라는 변수를 삭제한 것입니다.
간단히 Y/N 만 묻는 방법은 여기에 있습니다: ▶▶ 배치파일] Yes / No 선택 묻기, 도스의 CHOICE 명령 대용, 사용자 입력 받기 - DOS-Windows Batch File
그리고 배치파일 안에서 문자열을 직접 입력받는 것보다, "실행시 옵션"으로서 문자열을 입력받는 것이 훨씬 더 편리합니다. 여기에 방법이 있습니다: ▶▶ 배치파일] 옵션 문자열 얻기, 실행시 매개변수 활용 DOS-NT Batch File Option
▶▶ 배치파일 종료시 변수 자동으로 지우기, 변수 충돌 방지, 변수 지역화: SETLOCAL / ENDLOCAL
▶▶ 도스(DOS)/윈도우의, 배치 파일에서 echo off 란?
set /p <변수명>=
이라는 명령어를 사용하면 됩니다. 단, 윈도우2000/XP이상에서만 되고, 윈도우98에서는 되지 않습니다.
키보드로부터 문자열 입력 받기 예제
파일명: 0.bat
@echo off
setlocal
set /p str=아무 문자열이나 입력하세요:
echo 방금 입력하신 문자열은 %str% 입니다.
setlocal
set /p str=아무 문자열이나 입력하세요:
echo 방금 입력하신 문자열은 %str% 입니다.
사용자가 키보드로 입력한 문자열이 str 이라는 변수에 저장됩니다. 변수에서 값을 꺼낼 때에는 %str% 이렇게 퍼센트 기호를 앞뒤로 붙입니다.
set /p str=
이렇게 하면 아무 문자열이나 입력하세요: 라는 문자열이 나타나지 않습니다.
실행 결과:
D:\Z>0.bat
아무 문자열이나 입력하세요:ABC
방금 입력하신 문자열은 ABC 입니다.
아무 문자열이나 입력하세요:ABC
방금 입력하신 문자열은 ABC 입니다.
ABC 라는 문자열을 입력한 결과입니다.
이것은 좀더 실용적인 예제입니다. 사용자가 문자열을 입력하지 않고 그냥 엔터키만 누를 경우, 다시 입력받도록 합니다.
@echo off
setlocal
:: str 변수 초기화
set str=
:REDO
set /p str=문자열 입력하세요:
if "%str%" == "" goto REDO
echo 방금 입력하신 문자열은 %str% 입니다.
setlocal
:: str 변수 초기화
set str=
:REDO
set /p str=문자열 입력하세요:
if "%str%" == "" goto REDO
echo 방금 입력하신 문자열은 %str% 입니다.
str 이라는 변수에 혹시 어떤 값이 이미 들어 있을 경우에는 문제가 생기므로 "set str=" 이렇게 변수를 초기화했습니다. 실은 초기화라기보다는 str 이라는 변수를 삭제한 것입니다.
간단히 Y/N 만 묻는 방법은 여기에 있습니다: ▶▶ 배치파일] Yes / No 선택 묻기, 도스의 CHOICE 명령 대용, 사용자 입력 받기 - DOS-Windows Batch File
그리고 배치파일 안에서 문자열을 직접 입력받는 것보다, "실행시 옵션"으로서 문자열을 입력받는 것이 훨씬 더 편리합니다. 여기에 방법이 있습니다: ▶▶ 배치파일] 옵션 문자열 얻기, 실행시 매개변수 활용 DOS-NT Batch File Option
▶▶ 배치파일 종료시 변수 자동으로 지우기, 변수 충돌 방지, 변수 지역화: SETLOCAL / ENDLOCAL
▶▶ 도스(DOS)/윈도우의, 배치 파일에서 echo off 란?
tag: batch
배치파일 | DOS CMD BATCH .BAT | VBScript .VBS
감사합니다. 큰 도움이 되었습니다.
<< Home