노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


사랑이란?

컴퓨터와 운영체제.
그러나 MS는 아니어야 한다.

덧붙이는 말

굳이 설명하자면, 사랑은 독점이 아니라는 말이다.

'말의 나무 > 천일번제' 카테고리의 다른 글

[제377번제] 사랑이란? 184  (0) 2011.05.08
[제376번제] 사랑이란? 183  (0) 2011.05.07
[제375번제] 사랑이란? 182  (0) 2011.05.06
[제374번제] 사랑이란? 181  (0) 2011.05.05
[제373번제] 사랑이란? 180  (0) 2011.05.04
[제372번제] 사랑이랑? 179  (0) 2011.05.03
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

댓글을 달아주세요:: 왕미친놈 욕은 해도 되지만, 근거없는 소리는 쓰지 말아 주세요.
BBCode 사용할 수 있습니다.

들어가기에 앞서 자꾸 예고에 없는 내용이 끼어들어 죄송하다는 말을 먼저 하겠다.

들어가며

매개변수가 배치파일에 전달되는 모습을 그림으로 알아보는 자리를 마련했습니다. 뭐든 그림이 더 알기 쉽다고 생각하기 때문입니다.

말뜻

매개변수(parameter)는 도스와 윈도의 명령줄에서 어떤 명령어와 관계를 맺고 어떤 작용을 지시하는 변수나 인자를 가리킨다고 했습니다. 그런데 좀 더 보편적으로 설명한다면 운영체제와 명령어가 관ㄹ계를 가지고 있는데, 이때 명령어에 어떤 작용을 지시하는 변수를 매개변수라고 부릅니다.

매개변수와 응용프로그램

매개변수는 명령줄에서 입력받는 값이 된다. 이때 도스와 윈도에서 첫번째 매개변수를 %0이라 부르며, 이것은 운영체제에서 처리하게 된다. 다시 말해 %0을 처리하여 이것을 실행할 수 있는지, 실행할 수 없으면 그 파일과 연결된 프로그램을 호출하여 처리합니다. 다시 말해 명령 프롬프트에서 문서 파일 이름을 입력하고 <Enter>를 입력하면 바로 그 문서와 연결된 문서 편집기를 호출하여 실행시켜 준다.

우선 목록은 다음과 같다.

이때 명령줄에서 exam.txt 라고 입력하면 저 파일에 맞는 프로그램을 호출하면서 %0 매개변수로 입력 받은 exam.txt 파일을 읽어온다.

위와 같이 파일이 연결된 프로그램을 가지고 있다면 바로 읽어올 수 있다. 이것은 .txt 파일에 대한 정보를 윈도XP가 레지스트리에 가지고 있기 때문에 가능한 일이다.

이것은 다음과 같이 나타낼 수 있다.

명령줄에 입력된 매개변수는 %0과 %*로 나뉜다. 이때 매개변수 %1부터는 윈도에서 직접 구분하여 매개변수 %0으로 넘겨주는 때도 있고, 그게 아니면 %*과 같은 문자열의 형태로 넘겨줄 수도 있다.

위와 같이 윈도에서 %0 매개변수에 해당하는 ExecFile.exe를 불러들여 실행하면서 %1 매개변수부터는 문자열의 형태 또는 이미 분류된 형태로 %0 매개변수로 넘겨줘서 처리하라고 시키게 된다.

배치파일의 경우는 배치파일 안에 명령어가 하나일 때와 여럿일 때로 구분하여 생각할 수 있다.

위와 같이 배치파일 내부에서 입력 받은 매개변수를 모두 이용할 수도 있고, 그게 아니라 매개 변수 가운데 일부만을 이용할 수도 있다. 그것은 배치파일 제작자가 하기 나름이다. 일부러 더미 변수(쓰레기값)를 입력 받게 할 수도 있다.

배치파일 내부에서 사용한 명령어가 여럿이라면 위와 같이 복잡한 구성을 지닐 수도 있다. 그러나 대개는 %1, %2, %3, %4, %5, %6, %7, %8, %9, %*과 같은 매개변수는 배치파일 첫머리에서 해석하여 프로그래머가 지정한 환경변수로 치환하여 저장하는 것이 일반적이며, 위와 같은 형태는 예시를 들기 위해 나타낸 상황일 뿐임에 유의하자.

실제로 위와 같이 프로그램을 작성했다면, 그다지 좋은 프로그래밍 습관이 아니라고 해야겠다.

과제

지난 시간에 냈던 과제의 결과는 다음과 같다.

  • ECHO 명령을 이용하여 화면에 OFF라는 세 글자를 출력하시오. 
  1. @ECHO.OFF

위의 코드는 아래와 같은 결과를 보인다. 위의 코드에서 ECHO와 OFF 사이에 빨간 점(.)을 잘 보자.

OFF

다음 코드는 OFF 앞에 공백을 한 칸 추가할 수 있다. 공백에는 색깔을 넣었다.

  1. @ECHO. OFF

다음 코드는 OFF 앞에 공백을 두 칸 추가할 수 있다. 공백에는 서로 다른 색깔을 넣었다.

  1. @ECHO.  OFF

다음 코드는 OFF 앞에 공백을 두 칸 추가한 것과 같은 효과를 줄 수 있다. <Alt+255>는 아스키문자 255번을 가리킨다. 위의 코드들과는 달리 빨간 점(.)이 없다.

  1. @ECHO <Alt+255>OFF
 
  • DIR 명령을 이용하여 원하는 폴더(디렉터리)의 내용을 폴더(디렉터리)만 보여주도록 한다. /A /P 선택사항을 반드시 사용할 것.


  1. DIR /A:D /P %1
  2. DIR /AD /P %1

위의 두 코드 가운데 하나가 자신의 배치 파일에 있고, 그것이 실제로 작동하면 정답이다.

다음 예고

if 명령 이해하기.

이 글은 스프링노트에서 작성되었습니다.

'스크립트 > 배치파일' 카테고리의 다른 글

IF ERRORLEVEL에 쓰이는 종료코드  (12) 2009.04.14
IF 기본 설명  (6) 2009.04.09
배치파일에 매개변수 전달하기 2  (5) 2009.04.04
배치파일에 매개변수 전달하기  (0) 2009.04.01
배치파일 멈추기  (1) 2009.03.29
그밖에 출력  (2) 2009.03.26
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

댓글을 달아주세요:: 왕미친놈 욕은 해도 되지만, 근거없는 소리는 쓰지 말아 주세요.
BBCode 사용할 수 있습니다.

  1. 2009.07.20 04:14
    "ECHO . OFF"라고 언뜻 해 봤는데,,, 실패. <-- 모든 입력은 이해 가능한 최소 단위를 기준으로 띄어 쓰기를 하던 것이 버릇이 되었나 봅니다.

    "ECHO._OFF"는 되는군요... ㅎㅎ. [혼자 풀어 볼려고 노력했습니다만..ㅠㅠ]
    • 2009.07.21 00:48
      댓글 주소 수정/삭제
      ECHO 를 입력하고
      점(.) 찍은 다음에
      OFF 를 입력하면 됩니다.
      띄어쓰기는 없고요.
  2. 진만고양이
    2010.04.05 11:06
    ㅎㅎ
    저도 실패ㅋ

    전 % 이용해서 하는줄알고 이리저리해봤는데 안되었네용 ㅎ
  3. 진만고양이
    2010.04.05 11:06
    echo.

    그냥 한줄 공백인줄알았는뎅 거기에 글을 쓸수 있는지 몰랐는데

    알았네용 ㅎㅎ
    • 2010.04.05 18:03
      댓글 주소 수정/삭제
      이런 코드는 어떻게든 풀어보려고 할 때는 죽어라 안 풀립니다.
      참고로 저는 배치파일을 독학할 때 무려 일주일이 넘게 걸렸습니다. 결국 포기하고 책에 나온 것을 보고서야... 알았는데... 너무 간단해서 허무해지더군요. ^^a


카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

달력

«   2020/01   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31