컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, May 31, 2007

배치 파일에서, 숫자 계산하기, set 명령으로 더하기 빼기; Batch File Calc


오리지날 16비트 도스(MS-DOS)의 배치파일 문법에서는 안되지만, 윈도우2000/XP 이상의 윈도우 도스창(정식 명칭은, 명령 프롬프트;cmd.exe)에서는, set 명령에 /a 옵션을 붙이면 간단한 계산기로 사용할 수 있습니다. 그리고 배치 파일 내에서 숫자 계산이 필요한 경우에 set 명령으로 계산을 할 수 있습니다. 배치 프로그래밍에 유용합니다.

set /a 변수명=수식

의 형식입니다. 그러나 아주 간단한 가감승제만 할 수 있을 뿐이지 좀 복잡한 계산은 불가능합니다.

배치 파일 계산기 예제 소스

배치 파일명: example.bat
@echo off

rem 1 더하기 1 계산
set /a mytest=1+1
echo %mytest%
rem 출력 결과: 2


rem 2 곱하기 3 계산
set /a mytest=2*3
echo %mytest%
rem 출력 결과: 6


rem 100 나누기 3 계산
set /a mytest=100/3
echo %mytest%
rem 출력 결과: 33
rem 33.333...이 나와야 하지만 소수점 없이 정수로 출력됩니다.



rem 변수 지우고 종료
set mytest=


배치 파일 외부에서는, 변수에 대입할 필요 없이

set /a 1+1

이렇게만 해도 2라는 답이 나옵니다. 계산 결과가 그리 정밀하지 않기 때문에 일반 계산기 대용으로 쓰면 심한 오차가 발생하는 경우가 있습니다.


set 명령의 계산 기능을 사용하여, 루프문의 실행 회수를 제어하는 예제: ▶▶ 배치파일 무한루프 구현, 루프 탈출, 빠져 나오기 예제; Batch File Infinity Loop




tag: batch
배치파일 | DOS CMD BATCH .BAT | VBScript .VBS

1 Comments:
At October 9, 2009 at 2:17 AM, Blogger golgol said...

심심해서 또 올려봐요.

:: main.cmd/

:: 지역변수 지정
setlocal
set MY_STR0=global


call sub.cmd
echo.====================================
echo main.cmd : MY_STR0=%MY_STR0%
echo.====================================


endlocal

:: /main.cmd



:: sub.cmd/

echo. ====================================
echo sub.cmd : MY_STR0=%MY_STR0%
echo. ====================================



:: 지역변수 지정
setlocal
echo. ====================================
echo sub.cmd : MY_STR0=%MY_STR0%
echo. ====================================



set MY_STR0=local
echo. ====================================
echo sub.cmd : fix : MY_STR0=%MY_STR0%
echo. ====================================
:: Call
call subsub1.cmd
endlocal



echo. ====================================
echo sub.cmd : MY_STR0=%MY_STR0%
echo. ====================================



:: /sub.cmd




:: subsub1.cmd/

echo. ====================================
echo subsub1.cmd : MY_STR0=%MY_STR0%
echo. ====================================



:: 지역변수 지정
setlocal
echo. ====================================
echo subsub1.cmd : MY_STR0=%MY_STR0%
echo. ====================================



set MY_STR0=subsub1local
echo. ====================================
echo subsub1.cmd : fix : MY_STR0=%MY_STR0%
echo. ====================================
endlocal



echo. ====================================
echo subsub1.cmd : MY_STR0=%MY_STR0%
echo. ====================================




:: /subsub1.cmd





:: PRINT/
====================================
sub.cmd : MY_STR0=global
====================================
====================================
sub.cmd : MY_STR0=global
====================================
====================================
sub.cmd : fix : MY_STR0=local
====================================
====================================
subsub1.cmd : MY_STR0=local
====================================
====================================
subsub1.cmd : MY_STR0=local
====================================
====================================
subsub1.cmd : fix : MY_STR0=subsub1local
====================================
====================================
subsub1.cmd : MY_STR0=local
====================================
====================================
sub.cmd : MY_STR0=global
====================================
====================================
main.cmd : MY_STR0=global
====================================
:: /PRINT

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top