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

 
Previous Post 배치파일 무한루프 구현, 루프 탈출, 빠져 나오기 예제; Batch File Infinit...무한대 기호 입력, 무한대 특수문자 특수기호 입력 방법; Infinity Sign Inpu...컴퓨터에서 분수 표현 법은? 컴퓨터로 분수 나타내기, 입력; Fraction Input자바스크립트] 배열 합치기, 여러개의 배열을 연결, 하나로 병합 함수; JavaScript...자바스크립트] 배열 요소 추가, 새 요소 밀어넣기 함수; JavaScript unshift...자바스크립트] 배열 요소 삭제, 밖으로 추출 함수; JavaScript shift pop ...매스매티카] 함수 정의 방법, 사용자 함수 만들기; Mathematica User Defi...매스매티카] 극한 값 구하기, 리미트, 좌극한, 우극한; Mathematica lim Li...자바스크립트] 배열의 평균 값, 합계 구하기 함수; JavaScript Sum, Avera...자바스크립트] 중간값, 중앙값(메디안) 구하기 함수; JavaScript Median Fu...

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

Thursday, May 31, 2007

오리지날 도스(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

2 Comments:
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

 
At 8:52 AM, Blogger mwultong said...

반갑습니다

 

Post a Comment

<< Home RSS 2.0 feed

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