성엽이
KKIMSSI
성엽이
전체 방문자
오늘
어제
  • 분류 전체보기 (454)
    • :) (2)
    • C프로그래밍이론 (9)
    • C++프로그래밍 (64)
      • STL (1)
    • C# (2)
    • Visual studio 10.0 (9)
    • AT91SAM7S256 (21)
    • 논리회로 (14)
    • AVR2560 (11)
    • TCPIP (16)
    • NetWork (4)
      • Ubuntu Linux (2)
    • Assembly (21)
    • UNIX 프로그래밍 (6)
    • RFID 분석 (1)
    • Win32 API (7)
    • Cortex-M3 (4)
    • Unity (91)
    • Flutter (9)
    • OwnProject (11)
      • It's mine (5)
      • 마인드스톰 실습 (1)
      • 보고서 자료 (2)
      • RPi B+ (2)
    • ETC (25)
      • 상식 (3)
    • MFC (40)
    • PostgeSQL (18)
    • 영상제어 (6)
      • VFW_영상처리 (1)
    • Python (0)
    • Java (30)
      • SpringBoot (2)
      • Javascript (1)
      • JSP (13)
      • Spring (8)
    • Oracle (4)
      • SQL (3)
    • HTML (6)
      • Thymeleaf (1)
      • CSS (1)
      • Bootstrap (3)
    • IDE (1)
      • VS Code (1)
    • Android (2)
    • Privacy Policy (0)
    • MYSQL (2)
      • MariaDB (2)
    • AWS (5)
    • 개인공부 (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • 관리자
  • 글쓰기

공지사항

인기 글

태그

  • WINAPI
  • ARM Reverse Engineering
  • Boot Code 분석
  • MFC
  • 문자열 나누기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
성엽이

KKIMSSI

ETC

[환경변수등록] Reg 사용법 , 환경변수 자동 추가 Tip

2014. 3. 20. 13:55

하이브

레지스트리는 수많은 논리를 구분하는 "하이브"(hive)로 나눌 수 있다.[1][2] 하이브는 모두 HKEY로 시작하며, 윈도 API 정의로 이름이 지정되어 있는 것이 보통이다. HK로 시작하는 이 이름들은 HKCU, HKLM과 같이 짧은 3~4개의 이름을 줄인 것이다.

HKEY_LOCAL_MACHINE과 HKEY_CURRENT_USER 노드는 서로 비슷한 구조를 가지고 있다. 응용 프로그램은 보통 "HKEY_CURRENT_USER\Software\제조업체 이름\응용 프로그램 이름\버전 번호\설정 이름"의 설정 항목을 검색하고 설정값을 찾지 못할 경우 HKEY_LOCAL_MACHINE 키의 같은 위치에서 다시 한 번 검색한다. 또, HKEY_LOCAL_MACHINE을 먼저 기록하지만 (로그온한 사용자가 관리자가 아닌 경우 등에 따라) 기록하지 못하는 경우, 설정값은 HKEY_CURRENT_USER에 대신 저장한다.

하이브의 종류는 다음과 같다.

  • HKEY_CLASSES_ROOT (HKCR): 파일 연결, OLE 객체 클래스 ID와 같은 등록된 응용 프로그램의 정보를 담고 있다. 윈도 2000 이후로, HKCR은 HKCU\Software\Classes와 HKLM\Software\Classes를 편집한다. 주어진 값이 위의 서브키의 두 곳에 존재하면, HKCU\Software\Classes의 항목을 사용한다.
  • HKEY_CURRENT_USER (HKCU): 현재 로그인한 사용자의 설정을 담고 있다.
  • HKEY_LOCAL_MACHINE (HKLM): 컴퓨터의 모든 사용자의 설정을 담고 있다.
  • HKEY_USERS (HKU): 컴퓨터에서 사용 중인 각 사용자 프로파일에 대한 HKEY_CURRENT_USER 키에 일치하는 서브키를 담고 있다.
  • HKEY_CURRENT_CONFIG: 실행 시간에 수집한 자료를 담고 있다. 이 키에 저장된 정보는 디스크에 영구적으로 저장되지 않고 시동 시간에 생성된다.
  • HKEY_PERFORMANCE_DATA: 런타임 성능 데이터 정보를 제공한다. 이 키는 레지스트리 편집기에 보이지 않지만 윈도 API의 레지스트리 명령어를 통해 볼 수 있다.
  • HKEY_DYN_DATA: 이 키는 윈도 95, 윈도 98, 윈도 Me에만 쓰인다. 플러그 앤 플레이를 비롯한 하드웨어 장치, 네트워크 성능 통계에 대한 정보를 포함한다. 이 하이브의 정보는 하드 드라이브에 저장되지 않는다. 플러그 앤 플레이 정보는 컴퓨터가 시작할 때 구성되며 메모리에 저장된다.



사용자 변수 : HKEY_CURRENT_USER\Environment
시스템 변수 : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment




C:\>reg /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG 작업 [매개 변수 목록]

  작업  [ QUERY   | ADD    | DELETE  | COPY    |
               SAVE    | LOAD   | UNLOAD  | RESTORE |
               COMPARE | EXPORT | IMPORT ]

반환 코드: (REG COMPARE 제외)

  0 - 성공
  1 - 실패

특정 작업 유형에 대한 도움말을 보려면

  REG 작업 /?를 입력하십시오.

예:

  REG QUERY /?
  REG ADD /?
  REG DELETE /?
  REG COPY /?
  REG SAVE /?
  REG RESTORE /?
  REG LOAD /?
  REG UNLOAD /?
  REG COMPARE /?
  REG EXPORT /?
  REG IMPORT /?

C:\>reg query /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG QUERY KeyName [/v ValueName | /ve] [/s]

  KeyName    [\Machine\]FullKey
    Machine - 원격 컴퓨터 이름. 생략하면 기본값이 현재 컴퓨터가 됩니다.
         원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
    FullKey  - ROOTKEY\SubKey 이름 형식
    

     ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]

레지스트리 값 종류 목록
0REG_NONE종류 없음
1REG_SZ문자열 값
2REG_EXPAND_SZ확장할 수 있는 문자열 값. 환경 변수를 포함할 수 있다.
3REG_BINARY이진값 (임의의 데이터)
4REG_DWORD/REG_DWORD_LITTLE_ENDIANDWORD 값 (32 비트) 정수 (0 ~ 4,294,967,295 [232 – 1]) (리틀 엔디언)
5REG_DWORD_BIG_ENDIANDWORD 값 (32 비트) 정수 (0 ~ 4,294,967,295 [232 – 1]) (빅 엔디언)
6REG_LINK심볼 링크 (유니코드)
7REG_MULTI_SZ다중 문자열 값 (고유한 문자열의 배열)
8REG_RESOURCE_LIST리소스 목록 (플러그 앤 플레이 하드웨어 열거 및 구성에 쓰임)
9REG_FULL_RESOURCE_DESCRIPTOR리소스 서술자 (플러그 앤 플레이 하드웨어 열거 및 구성에 쓰임)
10REG_RESOURCE_REQUIREMENTS_LIST리소스 요구 목록 (플러그 앤 플레이 하드웨어 열거 및 구성에 쓰임)
11REG_QWORD/REG_QWORD_LITTLE_ENDIANQWORD 값 (64 비트 정수), 빅/리틀 엔디언 또는 정의되지 않음 (윈도 2000에 도입)


         SubKey  - 선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
  /v  특정 레지스트리 키에 대한 쿼리
         ValueName  - 선택한 키 아래에 있는 쿼리할 이름.
         생략하면 키 아래의 모든 키를 쿼리합니다.
  /ve 기본값 또는 비어 있는 값 이름 <이름 없음>에 대한 쿼리
  /s  모든 하위 키와 값을 쿼리합니다.

예:

  REG QUERY HKLM\Software\Microsoft\ResKit /v Version
    레지스트리 값 Version의 값을 표시합니다.

  REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /s
    레지스트리 키 Setup 아래의 모든 하위 키와 값을 표시합니다.







C:\>reg add /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]

  KeyName  [\\Machine\]FullKey
           Machine  원격 컴퓨터 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
                    원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
           FullKey  ROOTKEY\SubKey
           ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
           SubKey   선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름

  /v       선택한 키 아래에 있는 추가할 값 이름

  /ve      키에 대해 비어 있는 값 이름 <이름 없음>을 추가합니다.

  /t       RegKey 데이터 형식
           [ REG_SZ    | REG_MULTI_SZ  | REG_DWORD_BIG_ENDIAN    |
             REG_DWORD | REG_BINARY    | REG_DWORD_LITTLE_ENDIAN |
             REG_NONE  | REG_EXPAND_SZ ]
           생략하면 REG_SZ인 것으로 간주합니다.

  /s       REG_MULTI_SZ에 대한 데이터 문자열에서 구분자로 사용할 문자를
           하나 지정합니다. 생략하면 "\0"이 구분자로 사용됩니다.

  /d       추가할 레지스트리 ValueName에 지정할 데이터

  /f       확인 절차 없이 기존 레지스트리 항목을 강제로 덮어씁니다.

예:

  REG ADD \\ABC\HKLM\Software\MyCo
    원격 컴퓨터 ABC에 HKLM\Software\MyCo 키를 추가합니다.

  REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
    값(이름: Data, 형식: REG_BINARY, 데이터: fe340ead)을 추가합니다.

  REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
    값(이름: MRU, 형식: REG_MUTLI_SZ, 데이터: fax\0mail\0\0)을 추가합니다.

  REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
    값(이름: Path, 형식: REG_EXPAND_SZ, 데이터: %systemroot%)을 추가합니다.
    참고:  확장 문자열 내에는 퍼센트 기호를 두 개( %% ) 사용하십시오.







C:\>reg delete /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

  KeyName    [\\Machine\]FullKey
    Machine  원격 컴퓨터의 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
             원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
    FullKey  ROOTKEY\SubKey
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
  ValueName  선택한 키 아래에 있는 삭제할 값 이름.
             생략하면 해당 키 아래의 모든 하위 키와 값이 삭제됩니다.
  /ve        비어 있는 값 이름 <이름 없음>의 값을 삭제합니다.
  /va        이 키 아래의 모든 값을 삭제합니다.
  /f         확인 절차 없이 강제로 삭제합니다.

예:

  REG DELETE HKLM\Software\MyCo\MyApp\Timeout
    레지스트리 키 Timeout과 그 하위 키 및 값을 모두 삭제합니다.

  REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
    ZODIAC의 MyCo 아래에 있는 레지스트리 값 MTU를 삭제합니다.






C:\>reg copy /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG COPY KeyName1 KeyName2 [/s] [/f]

  KeyName    [\\Machine\]FullKey
    Machine  원격 컴퓨터의 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
             원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
    FullKey  ROOTKEY\SubKey
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
  /s         모든 하위 키와 값을 복사합니다.
  /f         확인 절차 없이 강제로 복사합니다.

예:

  REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s
    MyApp 키 아래에 있는 모든 하위 키와 값을 SaveMyApp 키로 복사합니다.

  REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1
    ZODIAC의 MyCo 키 아래에 있는 모든 값을 현재 컴퓨터의 MyCo1
    키로 복사합니다.






C:\>reg save /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG SAVE KeyName FileName

  KeyName    ROOTKEY\SubKey
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   선택한 ROOTKEY 아래에 있는 레지스트리의 전체 이름
  FileName   저장할 디스크 파일 이름. 경로를 지정하지 않으면
             호출 중인 프로세스의 현재 폴더에 파일을 만듭니다.

예:

  REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
    하이브 MyApp를 현재 폴더의 AppBkUp.hiv 파일에 저장합니다.

C:\>reg restore /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG RESTORE KeyName FileName

  KeyName    ROOTKEY\SubKey (local machine only)
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   하이브 파일을 복원할 레지스트리 키의 전체 이름.
             기존 키의 값과 하위 키를 덮어씁니다.
  FileName   복원할 하이브 파일 이름.
             REG SAVE를 사용하여 이 파일을 만들어야 합니다.

예:

  REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv
    ResKit 키를 덮어쓰면서 NTRKBkUp.hiv 파일을 복원합니다.






C:\>reg load /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG LOAD KeyName FileName

  KeyName    ROOTKEY\SubKey (로컬 컴퓨터만)
    ROOTKEY  [ HKLM | HKU ]
    SubKey   하이브 파일을 로드할 키 이름. 새 키를 만듭니다.
  FileName   로드할 하이브 파일 이름.
             REG SAVE를 사용하여 이 파일을 만들어야 합니다.

예:

  REG LOAD HKLM\TempHive TempHive.hiv
    TempHive.hiv 파일을 HKLM\TempHive 키로 로드합니다.

C:\>reg unload /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG UNLOAD KeyName

  KeyName    ROOTKEY\SubKey (로컬 컴퓨터만)
    ROOTKEY  [ HKLM | HKU ]
    SubKey   언로드할 하이브의 키 이름

예:

  REG UNLOAD HKLM\TempHive
    HKLM에 있는 TempHive 하이브를 언로드합니다.






C:\>reg compare /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG COMPARE KeyName1 KeyName2 [/v ValueName | /ve] [Output] [/s]

  KeyName    [\\Machine\]FullKey
    Machine  원격 컴퓨터의 이름 - 생략하면 기본값이 현재 컴퓨터가 됩니다.
             원격 컴퓨터에서는 HKLM과 HKU만 사용할 수 있습니다.
    FullKey  ROOTKEY\SubKey
             FullKey2를 지정하지 않으면 FullKey2가 FullKey1과 동일합니다.
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
  ValueName  선택한 키 아래에 있는 비교할 값 이름.
             생략하면 키 아래의 모든 값을 비교합니다.
  /ve        비어 있는 값 이름 <이름 없음>의 값을 비교합니다.
  /s         모든 하위 키와 값을 비교합니다.
  Output     [/oa | /od | /os | /on]
             생략하면 서로 다른 값만 출력합니다
    /oa      서로 다른 모든 값과 일치하는 값을 출력합니다.
    /od      서로 다른 값만 출력합니다.
    /os      일치하는 값만 출력합니다.
    /on      결과를 출력하지 않습니다.

반환 코드:

  0 - 성공. 비교한 결과가 동일함
  1 - 실패
  2 - 성공. 비교한 결과가 서로 다름

예:

  REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp
    MyApp 키 아래의 모든 값을 SaveMyApp와 비교합니다.

  REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version
    MyCo와 MyCo1 키 아래의 Version 값을 비교합니다.

  REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s
    ZODIAC의 HKLM\Software\MyCo 아래에 있는 모든 하위 키와 값을
    현재 시스템의 동일한 키와 비교합니다.






C:\>reg export /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG EXPORT KeyName FileName

  Keyname    ROOTKEY\SubKey (로컬 컴퓨터만)
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   선택한 ROOTKEY 아래에 있는 레지스트리 키의 전체 이름
  FileName   내보낼 디스크 파일의 이름

예:

  REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
    MyApp 키의 모든 하위 키와 값을 AppBkUp.reg 파일로 내보냅니다.






C:\>reg import /?

Console Registry Tool for Windows - version 3.0
Copyright (C) Microsoft Corp. 1981-2001.  All rights reserved


REG IMPORT 파일 이름

  파일 이름  가져올 디스크 파일 이름입니다(로컬 컴퓨터만).

예:

  REG IMPORT AppBkUp.reg
    AppBkUp.reg 파일에서 레지스트리 항목을 가져옵니다.



 

1. 초간단! 복사 배치파일

test1.bat

xcopy [원본] [대상] [옵션]

xcopy f:\ d:\ /y

배치파일 기본 중의 기본!

디렉터리 복사 하기 영 귀찮을 때, 혹은 같은 복사를 수 십대의 컴퓨터에 해야할 때 특히 유용합니다.

기본적으로 배치파일은 윈도우 명령 프롬프트 창에서 실행할 수 있는 모든 명령어를 포함하여 사용할 수 있습니다.

명령 프롬프트에서의 명령어는 dos와 같은데다, 자체 도움말 help를 내장하고 있으므로 쉽게 찾아보실 수 있습니다. 따라서 사용하고자 하는 커맨드를 나열하여 배치파일을 만들면, 복사 배치파일 뿐만 아니라 자신이 필요로 하는 배치파일을 만들 수 있습니다.

 

2.레지스트리 변경용 배치파일

명령 프롬프트 중에서 사용 가능한 명령어 중에,

reg라는 놈이 있습니다. 이 놈이 하는 역할은 윈도우에서 제공하는 레지스트리 편집기랑 같은 놈인데요,

이 명령어를 이용하면 사용하고자 하는 환경변수 등록을 “자동적으로” 만들 수 있습니다.

간단한 예로 자바 환경변수 등록을 하려면 다음과 같이 배치파일을 만듭니다.

test2.bat

reg add [윈도우의 전역 환경변수 위치] /v [추가될 변수 이름] /d [변수의 값]

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /d "C:\Program Files\Java\jdk1.6.0_13"
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d "%Path%;%%JAVA_HOME%%\bin\"

※포스팅 시점의 JDK가 1.6.13입니다.  이 부분은 사용하려는 JDK버전에 맞추어 바꿔주시기를 간절히 희망합니다.

위와 같이 만든 뒤 내 컴퓨터>속성>고급>환경변수에 가 보시면, JAVA_HOME 변수가 추가 된 것과 Path에 %JAVA_HOME%\bin\이 추가된 것을 볼 수 있습니다.

이런 팁을 어디다 쓰느냐 하면,

저 같은 경우 D:\Lib폴더를 만들어 제가 사용할 라이브러리들을 모아두는데요, 포맷 후 개발 환경을 복구시킬 때 이렇게 만들어 두고 배치파일 한번 실행 해버리고 마는 거죠. 일일이 마우스 우 클릭하면서 환경변수 등록하기 귀찮잖아요~?

 

3. 배치파일로 FTP사용하기.

이건 무려 배치파일과 스크립트 파일이라는 녀석을 함께 이용합니다. 우와~

위와 마찬가지로 명령 프롬프트 안에는 ftp라는 명령어가 있습니다. 하지만 이 녀석은 Unicode를 지원하지 않아서 좀 그렇더군요.

그래도 뭐 ftp에다가 폴더 이름하고 파일 이름을 영어로 쓰면 될 테니까요 뭐 쓰는데 큰 지장은 없지요.

test3.bat

ftp -n -s:ftp.scr [FTP서버 주소]

ftp.scr

user [사용자 이름]
[패스워드]
recv [파일이름]
disconnect
bye

ftp에 접속하여 파일을 받아오는 겁니다. 다만 ftp.scr에서 지정한 사용자 이름으로 접속하고 패스워드를 적으며 지정된 파일을 받아오는 일만 합니다.

그 외에도 ftp 자체 명령어가 많으니 그것도 알아보시면 더 많은 일을 할 수 있을 겁니다.


저작자표시

'ETC' 카테고리의 다른 글

CMD 창에 호스트명(hostname) 표시해주는 REG  (0) 2014.03.20
[VS] Visual Studio C++ 2005 단축키( VS2008 호환 )  (0) 2014.02.26
[cmd] -dir /s 옵션  (0) 2014.02.26
2013_01_16 _VC_환경변수 경로설정_펌  (2) 2014.01.16
2014.01.08 _ 데이터 통신 방식과 데이터 통신 종류( RS-232 / RS-422 / RS-485 )  (2) 2014.01.08
    'ETC' 카테고리의 다른 글
    • CMD 창에 호스트명(hostname) 표시해주는 REG
    • [VS] Visual Studio C++ 2005 단축키( VS2008 호환 )
    • [cmd] -dir /s 옵션
    • 2013_01_16 _VC_환경변수 경로설정_펌
    성엽이
    성엽이

    티스토리툴바