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


버추얼박스는 새 버전이 발표될 때마다 자잘한 벌레로 사람을 성가시게 하고 있다. 2.2.0판을 설치하면서 벌레가 많아서 사람을 성가시게 하고 있다. 이번에는 설치할 때 경로명에 한글이 포함되면 문제가 발생하는 벌레까지 발견했다.

벌레의 유형

설치 프로그램에 기생하면서 한글 경로명을 인식하지 못하게 막는 벌레이다.

벌레의 발견

낮에 집에서 윈도7을 설치한 뒤 PC방에서도 설치해 보고 싶었다. 물론 버추얼박스를 설치한 뒤에. 그런데 버추얼박스를 다운로드 받아서 설치하려고 했으나 오류가 나면서 설치가 되지 않았다.

다운로드한 버추얼박스 프로그램 파일

다운로드한 버추얼박스 프로그램 파일


오류

이 오류를 해결하기 위해 컴퓨터 설정을 살피다가 언어 설정과 관련하여 한 가지가 생각났다. 바로 "한글 경로"에서 문제가 발생하였다.

우선 프로그램이 있는 경로의 한글 경로가 문제가 된다고 생각하여 버추얼박스 프로그램을 C:\1 폴더로 옮겼다. 그러나 여전히 문제가 발생했다.

그렇다면 이것은 프로그램이 존재하는 곳의 경로와는 상관이 없다는 뜻이었고, 다른 가능성을 찾아야 했다. 그러다가 문득 시작 단추를 누르게 되었다.

"사매 로그오프"라는 부분, 곧 사용자 이름(사매)에 한글이 포함되어 있었다. 명령 프롬프트를 열어서 SET 명령을 입력했다.

SET 명령 실행 화면

명령 프롬프트에서 SET 명령 실행 화면

위와 같이 TEMP 환경 변수(핑크색 밑줄 부분)에도 한글이 포함되어 있음을 확인했다. 이 TEMP 환경변수는 프로그램이 실행될 때 임시파일을 만드는 경로인데, 한글이 포함될 경우 로마자 언어를 기준으로 작성된 프로그램에서는 가끔 오류가 생기기도 한다. 작게는 저장할 때 저장을 할 수 없는 문제가 있고, 이번처럼 아예 실행이 되지 않는 경우도 있다. 이것은 프로그램 제작자의 실수이지만, 해결할 방법은 있다. 바로 TEMP 환경변수의 경로를 바꾸면 된다.

벌레 잡기

이것을 해결하려면 시스템 환경변수를 다루어야 한다.

바탕화면에 내 컴퓨터 아이콘이 있다면 거기에서 마우스 오른쪽 단추를 클릭하여 속성을 선택하면 된다.

그게 아니라면 제어판(시작 단추 >> 설정 >> 제어판)을 열고, 거기에서 시스템을 두번클릭하면 된다. 그 뒤 고급 탭을 클릭한다.

시스템 등록 정보

시스템 등록 정보의 고급 탭을 클릭한

환경 변수를 클릭한다.

TEMP를 클릭하여 선택한 다음 편집 단추를 클릭한다.


위 그림처럼 보이게 되는데, 이때 아래처럼 바꾼다. 위의 그림은, 경로가 앞서 보여준 명령 프롬프트 화면의 C:\DOCUME~1\사매\LOCALS~1\Temp처럼 보이게 된다. 바로 한글 사매사용자 이름이고, %USERPROFILE% 환경변수는 사용자 이름을 참조하기 때문이다. 물론 근본적으로 사용자 이름을 한글이 아닌 로마자로만 지으면 되지만, 한글 이름을 쓰고 싶은 경우도 많으므로, 이렇게 고쳐 주면 해결할 수 있다.
아무튼 아래의 그림처럼 한글이 포함되지 않은 경로를 지정해 주면 된다. 이때 해당 경로가 존재하지 않는다면 그 폴더를 만들어 주면 된다. 마지막에는 반드시 확인을 클릭한다.

TMP 환경 변수TEMP 환경변수와 같게 만들어주면 된다.

확인을 눌러주면 편집한 환경 변수가 저장된다.

지금까지 작업을 마쳤으면 다시 버추얼박스 설치 프로그램을 클릭하여 실행한다.

제작자/제공자의 답변

2009년 5월 9일 오후 8시 20분 무렵(May 9th, 2009, 9:19 pm / 1시간의 오차는 일광시간절약제와 관련한 오류로 여겨진다.)에 버그리포팅을 하였다.

관련 문서

내부 문서

외부 문서

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


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

방금 윈도7(Windows 7)을 처음 설치하였습니다.

물론 정식 설치가 아니라 가상머신인 버추얼박스에 설치하였지만, 설치시간은 고작 50분인 데다가 동작도 상당히 빨랐습니다. 마이크로소프트의 제품을 설치하면서 처음으로 놀라움이 아닌 또 다른 "감동"을 했다는 점에서 윈도7은 성공하리라 확신합니다.

이래저래 놀라움을 안겨줄 모양입니다.

심지어 아직 버추얼박스의 게스트 확장조차 설치하지 않은 상태인데 말입니다.

이번에는 스크린샷이 하나뿐입니다. 몇 번 더 설치한 뒤에 여러 가지 스크린샷을 첨부하겠습니다. ^^a

그렇게 시험 설치를 한 뒤에 제 컴퓨터를 업그레이드해야겠습니다. 현재 제 컴퓨터는 C 드라이브에 윈도 폴더가 있고, D 드라이브에 프로그램 폴더(흔히 Program Files)와 프로필 폴더(흔히 Documents and Settings)가 있어서 조금 작업이 필요합니다.

일단 첫 평가 및 첫인상은 매우 좋습니다.

설치 후 첫 화면

윈도7 설치 후 첫 화면. 아래 그림 참조.



 

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


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)는 흔히 AIK로 불린다. 이것은 윈도 비스타부터 지원하기 시작한 새로운 배포 도구이다. 물론 윈도2000이나 윈도XP에도 자동 설치 도구가 있었으나, 그것은 윈도 설치 디스크(흔히 윈도CD)에 있는 DEPLOY.CAB 파일에 포함되어 있었다. 그것은 윈도CD의 <윈도CD>\SUPPORT\TOOLS 폴더에 들어 있다. 정확한 윈도 배포 도구의 파일명은 setupmgr.exe 이다.

아무튼 윈도 비스타부터는 자동 설치 도구의 크기도 매우 커졌으며, 설치 도구에서 이용하는 툴도 달라졌다. 무엇보다도 윈도 PE(Windows Preinstallation Environment)를 만들어 설치 디스크를 제작하도록 바뀌었다. 심지어 윈도 비스타 원본도 비스타PE(정확히는 윈도PE 2.0)를 이용하여 설치를 하고 있다. 윈도 설치 디스크에 있는 WIM 파일은 그것을 위해 마련되었습니다.

그리고 이번에 윈도7 베타 버전 발표와 함께 윈도7용 자동 설치 도구가 발표되었습니다.

프로그램 정보

  • 프로그램 이름 : Windows Automated Installation Kit for Windows 7(윈도 오토메이티드 인스톨레이션 킷 포 윈도 세븐; Windows 7용 윈도 자동 설치 도구)[각주:1]
  • 버전 : 베타 버전 (2009년 4월 23일자[각주:2])
  • 저작권자/제작자 : 마이크로소프트
  • 분류 : 설치 지원 도구
  • 지원 운영체제 : Windows® 7, Windows Server® 2008 R2, Windows Server® 2008, Windows Vista® with Service Pack 1 (SP1)
  • 홈페이지 : http://www.microsoft.com/downloads/details.aspx?FamilyID=696dd665-9f76-4177-a811-39c26d3b3b34&DisplayLang=ko[각주:3]
  • 저작권 : 프리웨어
  • 평가 : @@@@@@@@@@ ( 8 / 10 )
  • 스크린 샷 :
    0aik
    1aik
    2aik-setup-wizard
    3aik-license-terms
    4aik-Installation-Folder
    5aik-Confirm-Installation
    6aik-Installing
    7aik-Installation-Complete
  • 설명 :
    이 프로그램은 자신만의 설치 환경을 만들 수 있게 해 준다. 따라서 윈도 7을 설치하는 과정에서 함께 설치하고 싶은 하드웨어나 소프트웨어를 함께 설치할 수 있도록 지원해 준다.
  • 기타 :

    1. 이전 버전의 자동 설치 도구, 예컨대 Windows Automated Installation Kit for Windows Vista 등이 설치되어 있다면 업그레이드를 지원하지 않는다. 먼저 이전 버전을 제거하고 나서 설치해야 한다.
    2. 설치 이미지의 이름은 KB3AIK_EN.iso 이다. 이 파일은 UDF-DVD 이미지라서 UDF-DVD 이미지를 읽을 수 있는 프로그램이 설치되지 않은 윈도XP에서는 읽을 수 없는 경우가 있다. 이 경우 7-Zip을 이용하여 이미지를 압축 해제할 수 있다.
    3. KB3AIK_EN.iso 파일의 크기는 1.40GB (1,505,271,808 바이트)이며, 압축 해제한 뒤의 크기는 1.40GB (1,503,667,351 바이트)이다. 거의 변화가 없다.
    4. 그밖에 윈도 사전 설치 환경(PE) 제작 및 배포 도구의 다운로드/설치도 지원하고 있다.

다운로드

  • 방법 1 : 위에 소개한 홈페이지에서 공지사항의 "New Deployment Tools Available"을 클릭하면 나타나는 "Windows Automated Installation Kit for Windows 7(파일명 : KB3AIK_EN.iso)"라는 부분을 클릭하면 다운로드할 수 있다.
  • 방법 2 : MSDN 아이디를 가지고 있다면 MSDN 다운로드 사이트에서 받을 수 있다. 언어 설정은 영어로 하기 바란다. Windows Automated Installation Kit for Windows 7 RC and Windows Server 2008 R2 RC (x86/x64/ia64) - DVD (English) 라는 제목이며, 파일명은 en_windows_automated_installation_kit_x86_x64_ia64_dvd_349519.iso 이다.
  • 위의 두 파일은 완전히 동일하며 다음과 같은 파일 검증 값을 가진다.
    • SHA1 : EBEB71554D75A5E423535CB68BF8DE23E0B2477F
    • CRC32 : 403C29A9

관련글

아직 없음.

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


  1. 정확한 명칭은 "Windows Automated Installation Kit for Windows 7 RC and Windows Server 2008 R2 RC"이다 [본문으로]
  2. 다만 이 날짜는 AIK 이미지 안에 있는 파일의 날짜이다. [본문으로]
  3. 마이크로소프트 홈페이지에서 검색한 결과 따로 홈페이지가 존재하지 않았다. 다만 이 주소는 다운로드 페이지의 주소이다. [본문으로]

'소프트웨어 > 소개' 카테고리의 다른 글

GSpot  (0) 2009.09.06
DOSBox  (0) 2009.08.25
HxD  (2) 2009.04.23
MultiArc  (0) 2009.04.02
Total Commander  (0) 2009.03.28
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

GOTO 명령은 여러 프로그래밍 언어에서 실행 순서를 바꾸어주는 역할을 한다. 그러나 구조적 프로그래밍과 관련하여 지탄을 받는 대상이기도 하다. 한편 도스용 배치파일에서는 배치파일에서 루프(loop) 구현 등 여러 가지 상황과 맞물려 반드시 필요한 기능 가운데 하나였다.

윈도XP의 배치파일에서는 GOTO 명령의 쓰임이 예전보다 줄었으나 아직까지도 여전히 자주 쓰이고 있다. 특히 하위 버전과의 호환성이라는 측면에서 매우 중요한 역할을 하고 있다.

말뜻

GOTO는 배치파일 내부에서 지정하는 대상(레이블)이 있는 곳으로 가라는 뜻을 가지고 있다. 그러므로 이 명령어를 발견하면 뒤따르는 레이블이 위치하는 곳으로 옮겨가면 된다.

GOTO 기본 문법

GOTO 명령의 기본 문법은 매우 간단하다.

GOTO Label

레이블은 여러 가지가 있으며, GOTO 명령과 함께 쓰이는 것을 GOTO레이블이라고 부른다.

GOTO 명령을 GOTO레이블과 함께 표현하면 아래와 같다.

Command_1
Goto :Label_1
Command_2
:Label_1
Command_3
Goto Label_2
Command_4
:Label_2
Command_5

이때 2행에 있는 Goto :Label_1 에서는 레이블 앞에 쌍점(콜론)이 붙었으나, 6행에 있는 Goto Label_2 에서는 레이블 앞에 쌍점이 붙지 않았다. 이처럼 GOTO Label의 형태에서 레이블 앞에는 쌍점을 붙여도 되고, 붙이지 않아도 된다. 명령어와 혼동되지 않도록 쌍점을 붙이는 편이 낫다고 생각한다. 그러나 일반적으로 위와 같이 쓰이는 일은 거의 없고, 대부분 IF 문과 함께 쓰이게 된다.

이때 GOTO 레이블은 8글자를 넘기면, 그 넘어가는 부분은 무시하게 된다. 다시 말해 아래의 레이블은 모두 같은 의미―:a1234567―를 갖게 된다.

  1. :a1234567
  2. :a12345678
  3. :a12345679
  4. :a1234567a
  5. :a1234567b

한편 GOTO문에서 지정한 레이블이 존재하지 않으면, 레이블을 찾을 수 없다는 메시지를 내보내고 배치파일을 종료하게 된다.

다만 윈도XP 명령확장에서 사용하는 :EOF 레이블은 배치파일 내부에서 정의하지 않아도 동작하며, 그 경우 곧바로 오류 메시지를 보이지 않고 배치파일을 종료한다. 이 :EOF 레이블을 사용하려면 반드시 goto :EOF라고 써야 하며, goto EOF라고 콜론을 빠뜨리고 쓰면 동작하지 않는다.

참고 자료

다음 예고

FOR 명령

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


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

FOR 명령 확장 1  (2) 2009.06.17
FOR 명령  (6) 2009.05.16
IF 명령 확장  (1) 2009.04.22
IF 문자열  (4) 2009.04.18
IF EXIST  (0) 2009.04.15
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

알리는 말

11월 18일 수정

본문의 내용이 저작권을 침해할 우려가 있다는 모꼬모지 님의 의견이 있었습니다. 처음에는 본문에 해당하는 한국어 번역이 없다고 여겼으나, 모꼬모지 님이 이미 번역한 부분이 있었고, 저는 그것을 모르는 상태에서 본문을 작성하였습니다. 그에 따라 번역문이 낱말은 물론 토씨까지 일치하는 곳을 상당 부분 발견하였고, 그러한 부분을 대부분 삭제하였으며, 꼭 필요한 일부는 남겼습니다(예컨대 PROCESSOR_ 로 시작하는 환경변수).

그로 말미암아 설명이 삭제된 부분이 생겼는데, 일부는 영어 위키백과Environment variable에서 내용을 복사하여 붙였습니다. 제 블로그의 라이선스가 GFDL이고 위키백과도 GFDL이기 때문에 가능했습니다. 영문 그대로 둔 이유는 번역할 경우 그 결과물이 이미 번역된 다른 글과 같을 수 있다는 염려 때문입니다. 한국어 위키백과에 내용이 추가되기 전까지는 본문의 영어 부분을 한국어로 번역하지 않을 생각입니다.

그와 함께 변수 구분을 위해 하위 개요를 두어 표를 두 개로 분리하였습니다.

11월 19일 수정

모꼬모지 님께 먼저 죄송하다는 말을 드려야겠네요.

죄송합니다.

위키백과의 사랑방에서 과거에 있었던 여러 토론을 살펴본 결과 링크만 걸려 있으면 그다지 문제가 없다는 의견을 여럿 보게 되었습니다. 결국 제가 너무 까탈스럽게 굴었다는 말이네요.
너무 원칙만 고수하다 보니 본의 아니게 모꼬모지 님과 논쟁을 벌이게 되어습니다. 앞으로는 좀 더 시야를 넓혀 이번과 같은 일이 다시 일어나지 않도록 하겠습니다.

말뜻

환경 변수(環境 變數)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다.[각주:1] 이때 변수들은 명령줄 위에서, .BAT 확장자를 가지는 일괄 처리 파일, 또는 스크립트 안에서 쓰일 수 있다. 변수 이름 주변이나 앞에 특별한 기호(예 : %)를 놓아서 참조하는 것이 보통이다.

윈도 테크넷의 정의에 따르면,[각주:2] Cmd.exe 명령 셸 환경은 명령 셸 및 운영 체제의 동작을 결정하는 변수에서 정의한다. 시스템과 로컬, 이 두 가지 환경 변수를 사용하여 명령 셸 환경 또는 전체 운영 체제 환경의 동작을 정의할 수 있다. 시스템 환경 변수는 전체 운영 체제 환경의 동작을 정의하며, 로컬 환경 변수는 현재 Cmd.exe 인스턴스의 환경 동작을 정의한다.

시스템 환경 변수는 운영 체제에 미리 설정되어 Windows XP의 모든 프로세스에서 사용할 수 있다. 관리 권한이 있는 사용자만 시스템 변수를 변경할 수 있으며, 이 변수는 로그온 스크립트에서 가장 많이 사용한다. 로컬 환경 변수는 그 변수를 사용하도록 만든 사용자가 컴퓨터에 로그온한 경우에만 사용할 수 있다. 로컬 변수는 HKEY_CURRENT_USER 하이브에서 설정하고 현재 사용자인 경우에만 유효하지만 전체 운영 체제 환경의 동작을 정의합니다.

윈도 환경에서 환경 변수의 유형은 다음과 같습니다.

  1. 기본 제공 시스템 변수
  2. HKEY_LOCAL_MACHINE 하이브에 있는 시스템 변수
  3. HKEY_CURRENT_USER 하이브에 있는 로컬 변수
  4. 모든 환경 변수 및 Autoexec.bat 파일에서 설정된 경로
  5. 모든 환경 변수 및 로그온 스크립트에서 설정된 경로
  6. 스크립트 또는 배치 파일과 상호 작용하는 변수

윈도의 환경 변수

윈도의 기본 환경 변수는 다음과 같다.[각주:3] 변수명에는 퍼센트 기호(%)를 붙이지 않지만, 배치파일에서 사용한다고 가정하여 퍼센트 기호(%)를 붙인 상태로 표시하였다.

시스템 변수

여기에서 말하는 시스템 변수는 기본 제공 시스템 변수와 레지스트리에 저장된 시스템 변수를 편의상 통틀어 이르는 명칭이다.

윈도의 기본 환경 변수는 다음과 같다.[각주:4]

변수 설명
%CMDEXTVERSION%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT4 - 1
  • 윈도2000 및 윈도XP - 2
%COMPUTERNAME% 컴퓨터 이름을 반환합니다. 정확하게는 현재 컴퓨터의 NetBOIS 이름을 반환한다.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
  • 윈도2000 이후 기본값 - 현재 컴퓨터의 컴퓨터 이름
%ComSpec% This variable contains the full path to the command processor; on Windows NT based operating systems this is cmd.exe, while on Windows 9x and ME it is the DOS command processor, COMMAND.COM.
  • 윈도9X 기본값 - C:\WINDOWS\COMMAND.COM
  • 윈도NT 기본값 - %SystemRoot%\system32\cmd.exe
  • 윈도NT 표시값 -
    • NT4 - C:\WINNT\system32\cmd.exe
    • 윈도2000 이후 - C:\WINDOWS\system32\cmd.exe
%DATE%

This variable expands to the current date. The date is displayed according to the current user's date format preferences.

The following is a way of reformatting the date and time for use in file copies. The example assumes UK format of day month year and the time is set for a 24 hour clock.

  • 기본값 - 시스템의 날짜. 한글 윈도에서는 YYYY-MM-DD(윈도ME/2000 이후) 또는 YY-MM-DD(윈도95/98)의 형태로 나타내 준다.
  • 표시값 - (한글 윈도XP) 2009-05-03
%ERRORLEVEL%

This variable points to the current error level. If there was an error in the previous command, this is what you need to check against to find out about that.
이 환경변수는 SET 명령으로는 볼 수 없습니다.

%HOMEDRIVE%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - C:
%HOMEPATH%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - \Documents and Settings\{USERNAME}
  • 비스타 기본값 - \Users\{USERNAME}
%HOMESHARE% 사용자 공유 홈 디렉터리의 네트워크 경로를 반환합니다. 홈 디렉터리의 값에 따라 설정합니다. 사용자 홈 디렉터리는 로컬 사용자와 그룹에서 지정하며, 홈 디렉터리가 로컬 경로에 위치하면, 이 환경변수의 값은 공백(NULL)을 반환합니다. 윈도XP에서만 정의하고 있습니다.
%NUMBER_OF_PROCESSORS% 컴퓨터에 설치된 프로세서의 수를 지정합니다. 이것은 컴퓨터 하드웨어인 CPU 모듈의 갯수 또는 CPU 모듈과 CPU 코어의 곱의 계산값으로 나타납니다. 예컨대 단일 코어의 CPU 모듈이 1개라면 1 x 1 = 1을 반환합니다. 그러나 듀얼 코어 CPU가 4개라면 2 x 4 = 8을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%OS%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - Windows_NT
%Os2LibPath% OS/2 라이브러리의 경로를 반환한다. 윈도NT4 및 윈도2000 에서만 정의되어 있다.
%PATH% This variable contains a semicolon-delimited (do not put spaces in between) list of directories in which the command interpreter will search for an executable file that matches the given command. Equivalent to the Unix $PATH variable.
  • 윈도9X 기본값 - C:\WINDOWS;C:\WINDOWS\COMMAND
  • 윈도NT 기본값 - %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
  • 윈도NT 표시값 - C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
%PATHEXT% 운영 체제에서 실행 가능하다고 간주되는 파일 확장명 목록을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도XP 기본값 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
  • 비스타 기본값 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.WSF;.WSH;.MSC
%PROCESSOR_ARCHITECTURE% 프로세서의 칩 아키텍처를 반환합니다. 값은 다음과 같습니다. x86, IA64 등.
  • 윈도9X 기본값 - 정의되지 않음
%PROCESSOR_IDENTIFIER% 프로세서의 설명을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%PROCESSOR_LEVEL% 컴퓨터에 설치된 프로세서의 모델 번호를 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%PROCESSOR_REVISION% 프로세서의 수정 버전 번호를 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%Public%
  • 비스타 기본값 - C:\Users\Public
%RANDOM% This variable returns a random number between 0 and 32767. Cmd.exe에서 생성합니다.
  • 윈도9X 및 윈도NT4 기본값 - 정의되지 않음.
%SystemDrive% The %SystemDrive% variable is a special system-wide environment variable found on Microsoft Windows NT and its derivatives. Its value is the drive upon which the system folder was placed. Also see next item.

The value of %SystemDrive% is in most cases C:.

  • 윈도9X 계열 - 정의되지 않음
  • 윈도NT 기본값 - C:
%SystemRoot%

The %SystemRoot% variable is a special system-wide environment variable found on Microsoft Windows NT and its derivatives. Its value is the location of the system folder, including the drive and path.

The drive is the same as %SystemDrive% and the default path on a clean installation depends upon the version of the operating system. By default, on a clean installation:

  • 윈도9X 계열 - 정의되지 않음
  • 윈도NT 계열 기본값 -
    • Windows NT 5.1 (Windows XP) and newer versions use \WINDOWS
    • Windows NT 5.0 (Windows 2000), Windows NT 4.0 and Windows NT 3.1 use \WINNT
    • Windows NT 3.5x uses \WINNT35
%TEMP%
%TMP%
시스템 프로그램이 사용하는 기본 임시 디렉터리를 반환합니다. 어떤 프로그램에는 TEMP가 필요하고 어떤 프로그램은 TMP가 필요합니다.
  • 윈도9X 계열 기본값 - C:\WINDOWS\TEMP
  • 윈도NT 계열 시스템 기본값 - %SystemRoot%\TEMP
  • 윈도NT 계열 시스템 표시값 -
    • NT4 및 윈도2000 - C:\WINNT\TEMP
    • 윈도XP 이후 - C:\WINDOWS\TEMP
%TIME% This variable points to the current time. The time is displayed according to the current user's time format preferences.
  • 기본값 - 시스템의 날짜. 한글 윈도에서는 오전/오후 hh-mm의 형태로 나타내 준다.
  • 표시값 - (한글 윈도XP) 오후 03:36
%windir% This variable points to the Windows directory (on Windows NT-based operating systems it is identical to the %SystemRoot% variable, above). If the System is on drive C: then the default values are:
  • 윈도9X 계열 기본값 - C:\WINDOWS
  • 윈도NT 계열 기본값 - %SystemRoot%
  • 윈도NT 계열 표시값
    • NT4 및 윈도2000 - C:\WINNT
    • NT4 Terminal Server Edition - C:\WTSRV
    • 윈도XP 이후 - C:\WINDOWS
%winbootdir% 윈도9X 계열 운영체제가 설치된 위치를 반환합니다.
  • 윈도9X 및 윈도2000 기본값 - C:\WINDOWS

로컬 변수

변수 설명
%ALLUSERSPROFILE% The %AllUsersProfile% variable expands to the full path to the All Users profile directory. This profile contains resources and settings that are used by all system accounts. Shortcut links copied to the All Users' Start menu or Desktop folders will appear in every user's Start menu or Desktop, respectively.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
  • 윈도 2000 이후 기본값 - C:\Documents and Settings\All Users
  • 비스타 기본값 - C:\ProgramData
%APPDATA% Contains the full path to the Application Data folder of the logged-in user. Does not work on Windows NT 4.0 SP6 UK.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
  • 윈도 2000 이후 기본값 - %USERSPROFILE%\Application Data
  • 윈도 2000 이후 표시값 - C:\Documents and Settings\{USERNAME}\Application Data
  • 비스타 기본값 - C:\Users\{USERNAME}\AppData\Roaming
%CD% This variable points to the current directory. Equivalent to the output of the command cd when called without arguments.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
%CLIENTNAME% 로그인 환경이 로컬인지 원격인지에 따른 문자열을 반환합니다.
  • 윈도2000 이전 기본값 - 정의되지 않음
  • 윈도XP 이후 기본값 - 로컬이면 Console을 반환
%CMDCMDLINE% 현재 Cmd.exe를 시작하는 데 사용되는 정확한 명령줄을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - 일반적으로 %ComSpec% 환경변수의 값을 반환한다.
%LOCALAPPDATA%

로컬 사용자만을 위해 설치된 응용 프로그램이 기본적으로 데이터를 저장하는 위치를 반환합니다.

  • 비스타 기본값 - C:\Users\{USERNAME}\AppData\Local
%LOGONSERVER%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - \\%COMPUTERNAME%
  • 윈도NT 표시값 - \\{사용자가 쓰고 있는 컴퓨터 이름}
%ProgramData%
  • 비스타 기본값 - C:\ProgramData
%PROMPT%
  • 기본값 - $P$G
%TEMP%
%TMP%
현재 로그온한 사용자가 사용할 수 있는 응용 프로그램이 사용하는 기본 임시 디렉터리를 반환합니다. 어떤 프로그램에는 TEMP가 필요하고 어떤 프로그램은 TMP가 필요합니다.
  • 윈도9X 계열 기본값 - C:\WINDOWS\TEMP
  • 윈도NT 계열 로컬 기본값 - %USERPROFILE%\Local Settings\Temp
  • 윈도NT 계열 로컬 표시값 - C:\DOCUME~1\{USERNAME}\LOCALS~1\Temp
  • 비스타 기본값 - C:\Users\{USERNAME}\AppData\Local\Temp (%LOCALAPPDATA%\Temp 라고 추정)
%USERDOMAIN%

사용자 계정을 포함한 도메인 이름을 반환합니다.

The variable holds the name of the Workgroup or Windows Domain to which the current user belongs. The related variable, %LOGONSERVER%, holds the hostname of the server that authenticated the current user's logon credentials (name and password). For Home PCs, and PCs in a Workgroup, the authenticating server is usually the PC itself. For PCs in a Windows Domain, the authenticating server is a domain controller (a primary domain controller, or PDC, in Windows NT 4-based domains).

  • 윈도9X 계열 기본값 - 정의되지 않음
  • 윈도NT 계열 기본값 - %COMPUTERNAME%
  • 윈도NT 계열 표시값 - 현재 사용하는 컴퓨터 이름을 나타내 준다.
%USERNAME% 현재 로그온한 사용자 이름을 반환합니다.
  • 윈도9X 계열 기본값 - 정의되지 않음
  • 윈도NT 계열 기본값 - {USERNAME} (로그인한 사용자 이름)
%USERPROFILE%

The %UserProfile% variable is a special system-wide environment variable found on Microsoft Windows NT and its derivatives. Its value is the location of the current user's profile directory, in which is found that user's HKCU registry hive (NTUSER).

Users can also use the %USERNAME% variable to determine the active users login identification.

  • 윈도9X 계열 기본값 - 정의되지 않음
  • 윈도NT 계열 기본값 - C:\Documents and Settings\{USERNAME}
  • 비스타 기본값 - C:\Users\{USERNAME}
변수 설명

%ProgramFiles%

%ProgramFiles(x86)%

%ProgramW6432%

This variable points to Program Files directory, which stores all the installed program of Windows and others. The default on English-language systems is C:\Program Files. In 64-bit editions of Windows (XP, 2003, Vista), there are also %ProgramFiles(x86)% which defaults to C:\Program Files (x86) and %ProgramW6432% which defaults to C:\Program Files. The %ProgramFiles% itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).

  • 윈도9X 계열 - 정의되지 않음.
  • 윈도NT 계열 기본값 - C:\Program Files
%CommonProgramFiles%

This variable points to Common Files directory. The default is C:\Program Files\Common Files.

  • 윈도9X 계열 및 NT4 - 정의되지 않음.
  • 윈도2000 이후 기본값 - C:\Program Files\Common Files
%SessionName% 윈도2000 이후 버전에서 터미널 서비스 시스템 구성요소(Terminal Services system component)가 설치된 경우에만 정의된다. 로컬에서 로그인했을 때는 Console을 기본값으로 반환한다.

위의 표 세 가지를 읽을 때 다음과 같은 점에 주의하십시오.

  • 혹시라도 명령줄에서 set 명령으로 찾을 수 없는 환경 변수는 윈도 레지스트리 키(Windows Registry key)인 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 에서 찾을 수 있다. 몇몇 로컬 변수는 HKEY_CURRENT_USER\Environment 에서 찾을 수 있다.
  • 기본값과 표시값은 서로 같지 않다. 기본값은 레지스트리 등에서 정의하는 값이고, 표시값은 명령 프롬프트에서 SET 명령으로 확인할 수 있는 값이다. 윈도NT 계열(윈도NT/2000/XP 등)에서는 서로 다른 값을 가지므로 주의해야 한다(결과적으로 둘 다 같다). 위의 설명에서는 윈도XP를 기준으로 기본값과 표시값을 나누었으며, 두 값이 같다면 기본값만 표시했다.
  • 위의 환경변수 설명에서 {USERNAME}, {사용자가 쓰고 있는 컴퓨터 이름}이라는 부분은 시스템 환경에 따라 달라진다. 각자 자신의 컴퓨터에서 확인하기 바란다. 참고로 {USERNAME}의 값은 환경변수 %USERNAME%의 값에 따라 달라지며, {사용자가 쓰고 있는 컴퓨터 이름}%COMPUTERNAME%에 따라 달라진다.
  • 비스타 기본값은 표시값과 구분하지 않았다. 실제로 비스타를 설치하지 않은 이상 알 수 없기 때문이다.
  • Environment Variables 문서에서는 %SystemDirectory%라는 환경변수를 소개하고 있지만, 어디에서도 찾을 수 없었다.

도스의 환경 변수

MS-DOS v6.22를 설치했을 때의 환경 변수는 그다지 많지 않다. COMPSPEC, PROMPT, PATH, TEMP, 이렇게 네 개가 전부이다(참고 : 환경 변수 1).

참조 문서

내부 문서

외부 문서

다음 예고

GOTO 문과 레이블에 대해서 알아보기로 하자.

  1. 한국어 위키백과 : 환경 변수 [본문으로]
  2. 명령 셸 개요 :: Cmd.exe와 함께 환경 변수 사용 문서를 참조하였다. [본문으로]
  3. 명령 셸 개요 :: Cmd.exe와 함께 환경 변수 사용 문서, Environment Variables 문서, Windows Platform Comparison Environment Variable Reference 문서, Windows Vista- Environment variables 문서 등을 참조하였다. [본문으로]
  4. 변수명에는 퍼센트 기호(%)를 붙이지 않지만, 배치파일에서 사용한다고 가정하여 퍼센트 기호(%)를 붙인 상태로 표시하였다. [본문으로]

'스크립트' 카테고리의 다른 글

환경 변수 1  (0) 2009.05.02
이런저런 이야기  (6) 2009.03.30
스크립트란 무엇인가? 배치파일이란 무엇인가?  (8) 2009.03.21
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.
환경 변수가 무엇인지는 환경 변수 2에서 설명하기로 하고, 여기에서는 주의할 점을 몇 가지 설명하겠다.

도스와 윈도는 다르다.

환경 변수를 이용할 때 도스와 윈도가 다르며, 윈도9X 계열과 윈도XP의 경우가 다르다.

  • 도스에서 환경 변수의 이름은 항상 대문자이다. 윈도에서는 환경 변수의 이름에 소문자도 허용된다. 그러나 윈도에서 소문자 이름으로 된 환경변수를 대문자로 써도 똑같다. 반대로 대문자 이름으로 된 환경변수를 소문자로 써도 된다.
  • 도스에서 일부 환경변수의 값은 항상 대문자이다. 윈도에서는 모든 환경변수의 값에 소문자를 포함할 수 있다.
  • 정의되지 않은 환경 변수에 대한 처리 방법이 다르다. 도스와 윈도9X 계열에서는 정의되지 않은 환경변수는 공백으로 처리하지만, 윈도XP에서는 환경변수 이름을 돌려준다.
  • 도스에서는 환경변수가 숫자로만 이루어져도 문자열이지만, 윈도에서는 명령확장을 이용하여 수로 인식할 수 있다. 심지어 사칙연산도 가능하다.
  • 도스에서는 환경변수의 값에 ^(캐럿; 이스케이프 문자)와 &(앰프; 엔티티 부호) 등을 아무런 작업없이 바로 쓸 수 있다. 윈도XP에서는 따옴표(" ")를 사용하는 등 특별한 방법으로써 환경변수의 값에 쓸 수 있다. 다시 말해 윈도XP에서는 좀 더 복잡한 방법을 사용해야 한다. 도스에서는 환경변수의 값에 <(보다 작은; Less than), >(보다 큰; Greater than), |(bar; pipe)와 같은 세 가지 특수문자를 쓸 수 없다. 윈도XP에서는 앞서 말한 특별한 방법으로써 환경변수의 값에 쓸 수 있다.

도스의 환경변수

MS-DOS v6.22를 설치했을 때의 환경 변수는 그다지 많지 않다. COMPSPEC, PROMPT, PATH, TEMP, 이렇게 네 개가 전부이다.

COMPSPEC=C:\COMMAND.COM
PROMPT=$p$g
PATH=C:\DOS
TEMP=C:\DOS

참조 문서

내부 문서

외부 문서

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


'스크립트' 카테고리의 다른 글

환경 변수 2  (9) 2009.05.03
이런저런 이야기  (6) 2009.03.30
스크립트란 무엇인가? 배치파일이란 무엇인가?  (8) 2009.03.21
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

블로그를 연 지 두 달이 되었다. 첫 달과 둘째 달이 또 다르더라.

스킨! 아, 스킨!

맘에 드는 스킨이 없다. 그렇다고 구조를 이해하여 수정할 수 있는 실력도 없다. 수정은 하겠지만 겨우 글자 크기나 고치는 수준이다. 그래서 단순해 보이는 스킨을 골랐건만, 그것도 상당히 복잡하다. 응? 공부하라고?! 그래야겠다. 조금씩 고쳐봐야겠다.

집중!

무언가 집중이 되지 않는다는 느낌이 온다. 하지만 그렇다고 멈추기에는 지금까지 써 온 글이 아깝다. 에이! 모르겠다. 그냥 지금처럼 가자!

그리고 정치나 시사 이야기는 안 쓰려고 했는데, 그럴수록 다른 사람 블로그에서 자꾸 쓰게 된다. 그냥 그런 내용도 올려 버려? 흠, 고민만 하고 만다. 어쩌면 블로그를 하나 더 만들 수도... ㅡㅡa

할일

여전히 나에게 맞는 간소한 스킨을 만드는 계획은 유효하다. 그저 '언젠가는 만들 수 있겠지.'라고 생각하며 참고 지낼 뿐일까?

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


'일기' 카테고리의 다른 글

다사다난 셋째 달  (5) 2009.05.30
그가 죽었습니다.  (1) 2009.05.23
아이디  (0) 2009.04.06
블로그, 첫 한 달  (0) 2009.03.28
나는 백수인가?  (0) 2009.03.24
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2009/05   »
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

글 보관함