고급 배치파일 제 006강 : 함수 [목차보기]
입력문, 제어문, 반복문에 이어, 이제는 함수에 대해 알아 봅시다.
◆ 함수
C언어등 대부분의 프로그래밍 언어에서는 함수를 지원합니다.
그런데 배치파일 역시나, 함수를 지원할 수 있습니다.
배치파일의 함수는 크게 3가지로,
- 내부함수
- 외부함수
- 외부 EXE 응용 함수
이렇게 나눌 수 있습니다.
내부함수란 같은 배치파일 내에 함수를 호출하는 구조이며,
외부함수는 배치파일을 따로 작성해서 함수를 호출하는 구조입니다.
그리고, 외부 EXE 응용 함수는 배치파일에서는 할 수 없는 기능들을
하거나(실수연산, 텍스트컬러, 좌표이동 등) 거대한 알고리즘(정렬 등)
을 해야 할 때 빠른 속도로 도움을 받아 배치파일에 적용하는 기술입니다.
이 기술은 환경변수 트릭 등 약간 복잡한 과정을 거쳐야 하기때문에
이 강의에서는 일단, 내부함수(6강)와 외부함수(7강)에 대해서만 배워 봅시다.
◆ 내부함수
call :함수명 [실인수1 [실인수2 ... [실인수9]]]
:: 단, 실인수 사이에는 공백으로 구분
[수행코드]
:함수명
[수행코드]
:: 함수 내에서 사용하는 변수는 %~1 에서 %~9 까지 실인수를 지정한 순서대로 번호가 부여됩니다.
set [/a] 반환변수1=반환할값1
set [/a] 반환변수2=반환할값2
.
.
set [/a] 반환변수N=반환할값N
exit /b (함수의 끝)
C언어에서는 반환 변수를 하나만 지정했으나(또는 void를 써서 0개)
배치파일에서는 2개 이상의 복수 반환값도 지정할 수 있습니다.
파일명 : 6-1.bat
@echo off
echo ==============================
echo 배치파일 예제 6-1 - 내부함수
echo ==============================
echo.
set /p A=첫번째 :
set /p B=두번째 :
set /p C=세번째 :
call :SesuHap %A% %B% %C%
echo 세수의 합 = %Sum%
echo 세수의 곱 = %Prod%
pause>nul
:SesuHap
echo 역순으로 나열 : %~3, %~2, %~1
set /a Sum=%~1 + %~2 + %~3
set /a Prod=%~1 * %~2 * %~3
exit /b
세 수를 입력 받고, 세 수의 합과 곱을 반환하는 예제 입니다.
수행 결과
첫번째 :5
두번째 :7
세번째 :9
역순으로 나열 : 9, 7, 5
세수의 합 = 21
세수의 곱 = 315
'old drawer > programming' 카테고리의 다른 글
[ETC] cmd 명령어를 활용한 환경변수 추가 (0) | 2013.01.11 |
---|---|
[배치파일] 디렉토리 복사(폴더복사) (0) | 2013.01.10 |
[배치파일] 5강 FOR 반복문 (1) | 2013.01.10 |
[배치파일] 4강 정수형 수치연산 2 (0) | 2013.01.10 |
[배치파일] 3강 정수형 수치연산 (0) | 2013.01.10 |