본문 바로가기
  • 이웃집 찰스
정보나라

PE 설정파일 PECMD.INI 명령어 설명서

by 리뷰하는 김과장 2023. 8. 29.

이번에는 PE 설정파일 PECMD.INI 명령어에 대해 알아보는 시간 가지도록 하겠습니다. 윈도우를 자주 설치하시는분들은 Window PE 에 대해 한번쯤은 들어보셨을테죠~ 관심이 없거나 잘 모르시는분은 지금 당장 뒤로가기 버튼을 눌러주시기 바랍니다~ Window PE 에 잘 알고 계시고 PECMD.INI 파일을 수정해서 사용하고 계신분들은 잘오셨습니다. 이번에 제대로 PECMD 명령어를 공부하시고 pe 를 마음껏 수정해서 사용하시기 바랍니다~ 자주 사용하는 명령어를 엄선했습니다. 아래 소개한 명령어만 알아도 왠만한 작업은 다 하실수가 있을겁니다. 

 

 

 

 

01. pecmd 시스템변수


시스템 변수
CurDir — 현재 디렉토리
Desktop — 바탕화면
Favorites — 즐겨찾기
Personal — 내 문서
Programs — 프로그램
Send To — 보내기
Start — 시작 메뉴
Startup — 자동 작업
Quick Launch — 빠른 실행 바
System Driver — 시스템 파티션
System Root — 시스템 폴더

 

사용예제

%Programs%\start.cmd

 

 

 

02. [LINK] 바로가기 생성


형식 : LINK [!] < 바로 가기 경로 >, < 대상 경로 >, [ 작동 매개 변수 ], [ 아이콘 경로 [ # 아이콘 인덱스 ] ], [ 대상 설명 ], [ 초기 위치 ]
기능 : 바로 가기를 생성합니다.
매개 변수:
■ 바로 가기 : 생성할 바로 가기의 경로를 지정합니다. ".LNK" 확장자 이름은 필요하지 않습니다.
■ 대상 경로: 바로 가기 대상 파일 디렉터리를 지정합니다 (사용 가능한 상대 경로). 대상이 존재하지 않으면 바로 가기를 생성하지 않습니다.
■ 작동 매개 변수: 대상 프로그램의 작동 매개 변수입니다.
■ 아이콘 경로: 바로 가기 아이콘 경로입니다.
■ 아이콘 인덱스: 파일 리소스에서 바로 가기 아이콘의 일련 번호입니다. 0은 첫 번째를 나타내며, 아무것도 채우지 않으면 기본값을 나타냅니다.
■ 아이콘 설명: 대상 프로그램 또는 디렉터리에 대한 설명 문자열입니다.
■ 초기 위치: 대상 프로그램이 명령한 작업 디렉터리입니다.
예제:
◆ LINK!% Desktop% \ broadband connection, RASPPPOE.CMD, RASDIAL.DLL # 19
비고 :
※ 선행 문자 "!"은 프로그램을 최소화 형태로 시작하며, 배치 파일을 실행할 때 명령 창을 최소화하는 데 사용할 수 있습니다.

 

03. [CALL] 호출

 


형식: CALL <$DLL 이름>, [함수], [[#]매개 변수 1], [[#]매개 변수 2], [[#]매개 변수 3], [[#]매개 변수 4] 또는 CALL <프로세스> 또는 CALL <@ 창>
기능: DLL 함수 또는 하위 프로세스를 호출합니다.
매개 변수:
■ 선행 문자 "$"는 DLL 함수를 호출함을 나타내며, DLL 경로, 함수 이름 및 매개 변수를 지정합니다. 함수 이름이 생략된 경우 "DllRegisterServer"가 호출되며, 매개 변수는 기본적으로 UNICODE 문자열로 설정됩니다. 매개 변수의 선행 문자가 "#"인 경우 정수를 나타냅니다. 최대 네 개의 함수 매개 변수가 지원됩니다.
■ 선행 문자 "@"는 _SUB 명령으로 정의된 창을 호출함을 나타냅니다. _SUB 명령으로 정의된 창에서 CALL @다른 창을 실행하지 마십시오.
■ 선행 문자 "$"가 생략된 경우 하위 프로세스를 호출함을 나타내며, 매개 변수는 하위 프로세스의 이름입니다.
예제:
◆ DLL 함수 호출: CALL $ SHELL32.DLL, DllInstall, # 1, U
◆ 창 프로시저 호출: CALL @ Window1
◆ 하위 프로세스 호출: FIND MEM> 127, CALL EXPLORER_SHELL! CALL CMD_SHELL
비고:
※ DLL 함수 호출: DLL 내의 함수는 STDCALL 방식으로 내보내야 합니다. (이해하지 못하더라도 문제 없이 사용할 수 있습니다.)
※ 창 프로시저 호출: CALL의 선행 문자 "@"를 사용하여 창을 호출하는 경우 CALL 명령 이후의 명령 실행이 창이 닫힐 때까지 일시 중지됩니다.
※ 하위 프로세스 호출: CALL 명령은 동일한 설정 파일의 하위 프로세스를 호출할 수 있으며, 하위 프로세스를 호출하는 기능은 명령 줄에서 사용할 수 없습니다. 기타 정보는 _SUB 및 _END 명령 설명서를 참조하십시오.

 

 

 

04. [DEVI] 드라이버 설치


형식: DEVI [$] <CAB 경로>
기능: 지정된 CAB 파일 또는 폴더에서 드라이버를 찾아 (설치)합니다.
매개 변수:
■ 지정된 CAB 파일 경로. 선행 문자 "$"는 드라이버 파일을 추출한 후 드라이버를 설치하는 것을 의미합니다. 그렇지 않으면 드라이버를 설치하지 않습니다.
예제:
◆ DEVI %SystemRoot% \ DRV.CAB
비고:
※ 이 명령은 시스템의 사용자 정의 드라이버 검색 알고리즘을 사용하여 빠르게 사용 가능한 드라이버 프로그램을 추출할 수 있습니다. 따라서 장치는 여러 드라이버를 검색할 수 있습니다.
※ CAB 파일 내에서 각 드라이버를 별도의 디렉토리에 넣고, CAB 내의 INF 파일이 항상 현재 디렉토리의 시작 부분에 위치하도록 합니다. 동시에 CAB 내의 INF 파일은 처리되어야 합니다. 일치하는 프로그램 XCAB을 사용하는 것이 좋습니다.
※ INF 파일은 "%SystemRoot%\INF" 디렉토리로 추출되며, SYS 파일은 %SystemRoot%\SYSTEM32\DRIVERS 디렉토리로 추출되며, 기타 파일은 %SystemRoot%\SYSTEM32 디렉토리로 추출됩니다.
※ 다른 파일을 특정 디렉토리로 추출해야 할 경우 파일 이름에 "#"을 사용하여 디렉토리 구분자를 대체할 수 있습니다. 예를 들어 파일 "SYSTEM32#WBEM#MOF#XXX.MOF"은 "% SystemRoot% \ SYSTEM32 \ WBEM \ MOF \ XXX.MOF" 디렉토리로 추출됩니다.
※ 명령의 다른 기능: 로컬 디스크에서 드라이버를 검색합니다. 예: "DEVI \ Windows, Display". 그러나 이 명령은 완벽하지 않으며 드라이버 파일 대화 상자가 표시됩니다. 따라서 이 기능은 현재 기술 지원이 제공되지 않습니다.

 

05. [DISP] 해상도 설정


형식 : DISP [W 가로 해상도 H 세로 해상도] [B 색 깊이] [F 주사율] [T 대기(ms)]
기능 : 디스플레이 매개 변수를 설정합니다.
매개 변수:
■ 화면 매개 변수를 따로 지정합니다. 생략하면 원래 설정을 사용합니다.
예제:
◆ DISP W1024 H768 B32 F70 T5000
비고:
※ 처음 세 개의 매개 변수는 각각 독립적으로 사용할 수 있습니다. 예를 들어 주사율을 75로 설정하려면 DISP F75를 사용할 수 있습니다.

 

 

 

06. [EXEC]  프로그램이나 배치파일 실행


형식 : EXEC [=] [!] [@] [$] [&] <EXE 경로> [ 매개 변수 ]
기능 : EXE, BAT 및 CMD 프로시저를 실행합니다.
매개 변수:
■ 프로그램 경로와 매개 변수를 지정합니다. 선행 매개 변수는 다음과 같습니다. (순서와 관계없이 동시에 사용 가능합니다.)
■ 선행 문자 "="는 실행 완료를 기다립니다. 선행 문자 "!"는 숨겨진 상태에서 실행합니다.
■ 선행 문자 "@"는 배경 데스크톱(Windows 로그온)에서 실행합니다. 실행은 완전히 숨겨져 사용자와 상호 작용할 수 없지만 등록용으로 사용할 수 있습니다. 예를 들어 "EXEC@PECMD.EXE CALL $ SHELL32.DLL, DllInstall, # 1, U"입니다.
■ 선행 문자 "&"는 프로세스 종료 코드를 수정합니다 ("ExitWindowsEx" 함수를 사용함). SHELL 종료 기능을 수정하려면 "EXEC & EXPLORER.EXE"를 실행하는 것이 좋습니다. 이렇게 하면 "시작 -> 시스템 종료"를 실행할 때 "PECMD.EXE SHUT" 명령이 실행되어 컴퓨터가 종료됩니다.
■ 선행 문자 "$"는 ShellExecute 함수를 사용하여 TXT, BMP 등의 실행 불가능한 파일을 엽니다.
예제:
◆ EXEC =! CMD.EXE /C "DEL /Q /F% TEMP%"
비고 :
※ 이 명령을 통해 SHELL도 로드됩니다.

 

 

 

07. [FILE] 복사 이동 삭제


형식 : FILE < 파일 경로 > [ 연산자 ] [ 대상 경로 ]
기능 : 파일 또는 디렉터리 조작
매개 변수:
■ 소스 파일 경로와 대상 경로를 지정하며 와일드카드를 지원합니다. 세미콜론으로 여러 파일을 동시에 조작할 수 있습니다. 연산자 " -> "와 "=> "는 각각 이동과 복사에 해당하며, 연산자가 없는 경우 삭제 작업을 의미합니다.
예제:
◆ FILE% SystemRoot% \ INF \ *. INF =>% TEMP%
비고 :
※ RAMDISK를 사용하여 시스템을 부팅한 경우, 시작 후 2M NTOSKRNL.EXE와 같은 쓸모 없는 파일을 삭제하여 RAMDISK의 쓰기 가능한 공간을 늘릴 수 있습니다.

 

 

08. [FIND] 조건문


형식 : FIND < 조건 > [ 명령 1 ] [ ! 명령 2 ]
기능 : 조건 식이 설정되었는지 여부에 따라 조건이 설정된 경우 명령 1을 실행하고 설정되지 않은 경우 명령 2를 실행합니다.
매개 변수:
■ 조건 : [ 총 메모리 ], [ 총 디스크 공간 ], [ 키 ], [ 환경 변수 ] 또는 [ 메모리 프로세스 ]에 대한 판단
■ 총 메모리 : MEM < 비교 연산자 > 값
■ 총 디스크 공간 : R: \ < 비교 연산자 > 값. "R:"은 드라이브 문자를 나타냅니다.
■ 키 : KEY < 비교 연산자 > 값
■ 메모리 프로세스 : 메모리 프로세스 이름
■ 환경 변수 : $%환경 변수 이름% < 비교 연산자 > 환경 변수 값. 환경 변수의 비교는 대소문자 구분하지 않습니다.
■ 비교 연산자 : 비교 연산자에는 " < ", " > " 및 " = "가 있으며 각각 "미만", "초과" 및 "동일"을 나타냅니다.
■ 숫자 값 : 비교에 사용되는 값. 디스크 및 메모리의 단위는 MB이며, 키 값은 키 코드입니다.
예제:
◆ FIND MEM <128, SHEL% SystemRoot% \ SYSTEM32 \ XPLORER2.EXE! SHELL% SystemRoot% \ EXPLORER.EXE
◆ FIND $% OUTSIDE% =, ENVI $ OUTSIDE =% CurDrv% \ 외부 프로그램
비고 :
※ 이 명령은 매우 강력하고 복잡합니다. FIND 또는 IFEX를 중첩하여 여러 조건을 판단하는 데 사용할 수 있습니다. IFEX 명령의 기능과 유사합니다.
※ < 조건식> 뒤의 " , "은 " * "로 대체할 수 있습니다.
※ 이 명령이 FIND 또는 IFEX 명령을 중첩하여 사용하는 경우 중첩된 명령은 " ! " 구분자를 사용할 수 없습니다.
※ FIND 명령을 키 감지에 사용하는 경우 사용자가 'A' ~ 'Z' 또는 '0' ~ '9' 키를 누르면 키 결과가 환경 변수 %PressKey%에 저장됩니다.

 

 

09. [FORX]  CMD 명령어 for 와 유사


형식 : FORX [@] [[!] \] < 파일 >, < 변수 > , [ 값 ] , < 명령 > [ 매개 변수, 매개 변수 … ] <% 변수% > [ , 매개 변수, 매개 변수 … ] [ , … ]
기능 : 파일 디렉터리에 해당하는 명령 작업을 수행하며, CMD.EXE의 for 명령과 유사한 기능입니다.
매개 변수:
■ 파일 : 와일드카드 문자를 사용할 수 있는 파일 디렉터리 이름을 지정합니다.
■ 변수 : 변수 이름을 지정합니다. 기존 환경 변수나 창 컨트롤 이름이 아니어야 합니다.
■ 값 : 일치하는 파일 디렉터리에 대한 해당 번호의 명령 작업을 실행합니다. 0 또는 < 0은 모든 기존 파일에 대해 명령 작업을 실행합니다.
■ 명령 : PECMD.EXE 유효한 명령. 명령 뒤의 매개 변수 형식과 개수는 해당 명령에 따라 결정됩니다.
예제:
◆ FORX% CurDir% \ Path1 \ *. DLL, AnyDLL, 0, CALL% AnyDLL%
◆ FORX \ auto *. INF, AutoRunVirus, 0, FILE% AutoRunVirus%
◆ FORX! \ WinPE \ WinPE.INI, MyIni, 1, LOAD% MyIni%
비고 :
※ 이 명령은 숨겨진 속성 파일 디렉터리와 같은 속성을 갖는 디렉터리를 검색할 수 있습니다.
※ 선행 문자 " \ "는 모든 파티션을 검색하는 것을 나타냅니다. " ! "는 모든 파티션에 대한 역 검색을 수행합니다. 두 선행 문자 " [ ! ] \ "에서 " ! "는 혼자 존재할 수 없습니다.
※ 선행 문자 " @ "는 디렉터리만 검색하고 해당 작업을 수행합니다. " @ "가 생략되면 파일만 검색하고 해당 작업을 수행합니다.
※ 예제 1은 %CurDir% \ Path1 \ 디렉터리에 있는 모든 DLL을 등록합니다.
※ 예제 2는 모든 파티션 루트 디렉터리에서 auto *. INF 파일을 삭제합니다.
※ 예제 3은 모든 파티션의 WinPE 디렉터리에서 WinPE.INI를 역으로 검색합니다. 그런 다음 LOAD 명령을 사용하여 첫 번째 WinPE.INI를 로드합니다.

 

 

 

10. [IFEX] 조건문


형식 : IFEX < 조건 >, [ 명령 1 ] [ ! 명령 2 ]
기능 : 조건식이 설정되는지 여부에 따라 조건이 설정된 경우 명령 1을 실행하고, 그렇지 않은 경우 명령 2를 실행합니다.
매개 변수:
■ 조건 : [ 사용 가능한 메모리 ], [ 디스크 여유 공간 ], [ 키 ], [ 숫자 변수 ] 또는 [ 파일 디렉터리 ]에 대한 판단
■ 사용 가능한 메모리 : MEM < 비교 연산자 > 값
■ 디스크 여유 공간 : R:\ < 비교 연산자 > 값. "R:"은 드라이브 문자입니다.
■ 키 : KEY < 비교 연산자 > 값
■ 파일 디렉터리 : 파일 디렉터리 이름. 와일드카드를 사용할 수 있습니다.
■ 숫자 변수 : $%숫자 변수 이름% < 비교 연산자 > 숫자 값 또는 숫자 변수 이름. 숫자 변수는 CALC 또는 ENVI 할당으로 설정된 변수입니다.
■ 비교 연산자 : 비교 연산자에는 " < ", " > " 및 " = "가 있으며 각각 "미만", "초과" 및 "같음"을 나타냅니다.
■ 숫자 값 : 비교를 위한 값. 디스크와 메모리의 단위는 MB이며, 키 값은 키 코드입니다.
예제:
◆ IFEX KEY = 17, TEAM TEXT search fonts | FONT \ WINDOWS! TEAM TEXT install fonts | FONT% CurDrv% \ external program \ FONT
◆ IFEX C:\ Windows,! MESS directory C:\ Windows not exist, \n please click [ OK ] . @ directory check # OK
비고 :
※ 이 명령은 매우 강력하고 복잡합니다. IFEX 또는 FIND를 중첩하여 여러 조건을 판단하는 데 사용할 수 있습니다. FIND의 기능은 이 명령과 유사합니다.
※ < 조건식 > 뒤의 " , "은 " * "로 대체할 수 있습니다.
※ 이 명령이 IFEX 또는 FIND 명령을 중첩하는 경우 중첩된 명령은 " ! " 구분자를 사용할 수 없습니다.
※ IFEX 명령을 사용하여 키를 감지하는 경우 사용자가 'A' ~ 'Z' 또는 '0 ' ~ '9 ' 키를 누르면 키 결과가 %PressKey%에 저장됩니다.
※ 변수를 판단하는 명령을 사용할 때 모든 변수는 double 데이터 유형에 따라 처리되어야 합니다. (소수점 네 번째 자리까지 유지 가능)

 

 

 

11. [KILL] 강제종료


형식 : KILL [[<> 창 제목 ] | [ 프로세스 이름 ] ]
기능 : 지정된 제목의 창을 닫거나 지정된 프로세스를 강제로 종료합니다.
매개 변수:
■ 선행 문자 " \ "는 지정된 제목의 창을 닫습니다. 창 제목이 생략되면 _SUB 명령으로 정의된 창이 닫힙니다.
■ 선행 문자 " \ "를 생략하면 지정된 이름의 프로세스 (EXE 파일 이름, 경로 없음)를 종료합니다. 프로세스 이름이 생략되면 PECMD의 부모 프로세스가 종료됩니다.
예제:
◆ KILL WinLogon.EXE
◆ KILL \ Calculator
비고 :
※ 창 제목 없는 프로세스 이름은 프로세스 이름으로 끝나야 합니다.
※ 프로세스 종료 시 프로세스 이름과 일치하는 모든 프로세스가 종료됩니다.

 

12. [LOAD] 설정파일 로드


형식 : LOAD < 파일 경로 >
기능 : 설정 파일에 있는 명령을 순서대로 실행합니다.
매개 변수:
■ 지정된 파일 이름(경로 포함; 환경 변수 지원)
예제:
◆ LOAD \external program\PECMD.INI
비고 :
※ 각 명령은 한 줄에 있어야 합니다. 주 프로세스의 명령이 순차적으로 실행됩니다. 잘못된 명령 또는 빈 줄은 무시됩니다.
※ ANSI 및 UNICODE 형식의 텍스트 파일을 지원합니다. UNICODE 형식 텍스트 파일을 사용하는 것이 좋습니다.
※ 설정 파일은 전체 줄 주석과 후행 줄 주석을 지원합니다. 주석 시작으로 " ` " 문자(ESC 키 아래의 문자)를 사용하는 것이 좋습니다.
※ 설정 파일에서 환경 변수 "%CurDrv%"를 현재 드라이브 문자로 나타낼 수 있습니다.
※ 파일 경로의 첫 번째 문자가 " \ "인 경우 모든 디스크의 지정된 디렉터리에서 파일을 검색합니다. 여기에 "LOAD \MyWinPE\PECMD.INI" 예제가 있습니다.
※ 설정 파일 디렉터리가 현재 디렉터리로 설정됩니다. 따라서 바로 가기를 만들 때 대상 경로에 상대 경로를 사용할 수 있습니다.
※ 기타 정보는 MAIN 명령 설명을 참조하십시오.

 

 

13. [SHEL] 쉘 로드 



형식 : SHEL < 파일 이름 ( 경로 포함 ) > [ 암호 MD5 문자열 ], [ 재시도 횟수 ]
기능 : 지정된 쉘(SHELL)을 로드하고 잠급니다.
매개 변수:
■ 파일 이름: 쉘 파일 이름(경로 포함; 환경 변수 사용 가능).
■ 암호: 영문자와 숫자. 암호는 대소문자를 구분하며 최대 길이는 12자입니다.
■ 암호 MD5 문자열이 생략되면 자동으로 로그인합니다. 재시도 횟수의 기본값은 3입니다.
예제:
◆ SHEL% SystemRoot% \ EXPLORER.EXE, e10adc3949ba59abbe56e057f20f883e, 5
비고 :
※ 이 명령의 기능은 EXEC $와 유사합니다. 처리 중인 종료 코드(“ExitWindowsEx” 함수 마운트)를 수정할 수 있습니다.
※ 이 명령은 또한 쉘(SHELL)을 잠그는 기능을 갖고 있습니다. 쉘이 삭제되면 자동으로 쉘이 로드됩니다.
※ 로그인 암호가 있는 쉘(SHELL) 명령을 열기 전에 LOGO 명령을 열 것을 권장합니다.
※ SHEL 명령 뒤의 TEXT 명령 매개 변수를 재설정해야 할 수 있습니다.
※ SHEL 명령은 HOTK 명령 뒤에 와야 하며, 명령 줄에서는 사용할 수 없으며 설정 파일에서만 사용할 수 있습니다.

 

 

14. [MESS] 매세지 박스


형식 : MESS < 메시지 창 텍스트 > < @메시지 창 제목 > <#메시지 창 유형 > [ * 자동 종료 시간 ( ms ) ] [ $ 기본 옵션 ]
기능 : [ 예 / 아니오 ] 선택 메시지 창을 표시하거나 [ 확인 ] 버튼이 있는 메시지 창을 표시합니다.
매개 변수:
■ "메시지 창 텍스트"는 여러 줄의 텍스트를 지원하며 줄을 나누려면 "\n"을 사용하여 연결합니다. "메시지 창 유형"은 현재 "YN" 및 "OK" 유형을 지원합니다.
■ 자동 종료 시간이 0으로 설정되거나 설정되지 않은 경우 메시지 창은 자동으로 닫히지 않습니다. 기본 옵션은 Y 또는 N으로 표시되며, 예를 들어 $ Y 또는 $ N입니다.
예제:
◆ MESS 물리 메모리가 부족합니다. \n 가상 메모리를 설정하시겠습니까? @ 가상 메모리 설정 # YN * 10000 $ N
비고 :
※ "YN" 유형 메시지 창의 사용자 선택 결과는 환경 변수 %YESNO%에 저장됩니다. [예]를 선택한 경우, 환경 변수 %YESNO%의 값은 YES입니다. 타임아웃으로 인해 창이 닫히거나 [아니오]가 선택된 경우, 환경 변수 %YESNO%의 값은 NO입니다. IFEX 또는 FIND 명령을 사용하여 환경 변수 값을 판단할 수 있습니다.
※ "YN" 유형 메시지 창에서 기본 선택 매개 변수를 생략하는 경우 자동 종료의 반환 값은 NO입니다.
※ "OK" 유형 메시지 창은 반환 값이 없습니다. 사용자에게 프롬프트 메시지만 표시됩니다.

 

15. [REGI] 레지등록 및 삭제


형식 : REGI [ 선행 문자 ] <HKLM|HKCU|HKCR|HKU|HKCC> <\ 하위 키 \ > { <키 이름, 변수 이름> | [[ 키 이름 ] [ 연산자 ] [ [ 유형 문자 ] 데이터 값 ] ] }
기능 : 레지스트리 데이터를 읽거나 설정하거나 삭제합니다.
매개 변수:
■ 선행 문자 ” $”, “#”, “@” 각각은 레지스트리에서의 REG_SZ, REG_DWORD, REG_BINARY 데이터 유형을 나타냅니다. 이들을 생략하면 데이터를 설정하고 삭제하는 것을 의미합니다. 그리고 변수 이름(기본값은 RegDat입니다.)은 반환 값을 저장하는 데 사용됩니다.
■ 하위 키 이름: 선택한 ROOTKEY의 레지스트리의 전체 이름입니다.
■ 키 이름: 조작할 키 값 이름입니다. 생략하면 기본 키를 조작합니다. 연산자가 ” ! ”이고 “=”이 없으면 전체 하위 키를 삭제하는 데 사용됩니다.
■ 연산자: 연산자 ” ! ”는 전체 하위 키를 삭제합니다. 연산자 “=”와 데이터가 없으면 삭제를 의미합니다. 연산자 “=”와 데이터가 있는 경우 데이터를 설정합니다.
■ 유형 문자: 데이터 유형입니다. 생략하면 데이터 유형은 문자열입니다. “#”이면 데이터 유형은 “# 0x20”과 같은 REG_DWORD 데이터 유형입니다. “@”이면 데이터 유형은 ” @ 233490255 “와 같은 REG_BINARY 데이터 유형입니다.
■ 데이터 값: 문자열입니다. 빈 값은 ” “로 표시됩니다. REG_DWORD와 REG_BINARY 데이터 유형은 16진수 값을 지원합니다.
예제:
◆ REGI HKCU \ SOFTWARE \ WinCMD \ Version = # 1200
◆ REGI HKCR \ lnkfile \ IsShortcut = “”
◆ REGI $ HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders \ Cache, IECache
비고 :
※ 이 명령은 매우 복잡합니다. 주의 깊게 읽어보십시오. 예제 3은 IE 캐시의 위치를 읽어옵니다.

 

 

 

 

 

16. [TEAM] 한줄에 여러개의 명령어 사용


형식 : TEAM [ 명령 1] [| 명령 2] [| 명령 3] … [| 명령 n]
기능 : 지정된 명령 그룹의 각 명령을 순서대로 실행합니다.
매개 변수:
■ 하나 또는 여러 개의 명령: 여러 개의 명령을 구분하기 위해 " |"을 사용합니다.
예제:
◆ TEAM TEXT 데스크톱 로드 | LOGO | SHEL%SystemRoot% \ EXPLORER.EXE | WAIT 3000
비고 :
※ TEAM 명령 다음에 오는 명령에는 IFEX 또는 FIND 명령을 중첩할 수 없습니다.

 

[TEMP]
형식 : TEMP <[@] 삭제 | 설정>
기능 : 사용자 임시 폴더를 정리하거나 사용자 임시 폴더의 위치를 재설정합니다.
매개 변수:
■ 삭제는 임시 디렉터리를 정리하는 것을 의미합니다. 선행 문자 " @ "는 사용자의 확인 없이 직접 정리하는 것을 나타냅니다. 설정은 임시 디렉터리의 위치를 재설정하는 것을 의미합니다.
예제:
◆ TEMP 삭제
비고 :
※ 이 명령을 구성 파일에서 사용하지 마십시오. 데스크톱으로 부팅하여 사용해야 합니다. 이 명령은 레지스트리에서 임시 디렉터리 위치를 읽어오는 것입니다.

 

17. [TEXT] 화면에 글자 출력


형식 : TEXT [ 텍스트 라인 1] [\ n] 텍스트 라인 2 [\ n] 텍스트 라인 3 … ] [ # 색상 ] [L 왼쪽 ] [T 위쪽 ] [R 오른쪽 ] [B 아래쪽 ] [ $ 폰트 크기 ]
기능 : 로그인 화면이나 데스크톱 창에 텍스트를 표시합니다.
매개 변수:
■ 텍스트가 비어있는 경우, 직사각형 영역에 최근에 정의된 텍스트를 제거합니다. 기본 색상은 흰색입니다. 기본 좌표는 대략 왼쪽 상단 모퉁이에 위치합니다. 끝에 "*"가 있는 경우, 새로운 텍스트가 표시되기 전에 원래 표시된 텍스트가 제거되지 않습니다.
예제:
◆ TEXT 컴포넌트 등록 중... # 0xFFDDDD L4 T720 R300 B768 $ 20
비고 :
※ 이 명령은 여러 줄의 텍스트를 지원합니다. 텍스트 라인 사이의 줄 바꿈은 "\ n"을 사용합니다.
※ 폰트 크기: 기본 폰트 크기는 14입니다(송체의 작은 다섯 번 폰트와 동일).
※ 지정된 위치 [왼쪽, 위쪽, 오른쪽, 아래쪽]은 텍스트 길이와 폰트 크기와 관련이 있습니다.
※ 이 명령을 로그인 프로세스 중 구성 파일에서 사용하면 텍스트가 로그인 화면에 표시됩니다. 로그인 후에 사용하면 데스크톱 창에 텍스트가 표시됩니다. 텍스트가 비어있으면 직사각형 영역에 최근에 정의된 텍스트를 제거합니다.

 

 

18. [TIPS] 팝업상자 출력


형식 : TIPS [ 팝업 상자 제목 ], < 팝업 상자 내용 >, [ 팝업 상자 지속 시간 ], [ 아이콘 스타일 ID], [<@ [A] 팝업 상자 위치 > | [ 트레이 아이콘 ] ]
기능 : 화면의 지정된 위치나 트레이 바에 거품형 팝업 상자를 표시합니다. 모든 매개 변수를 생략하면 트레이 바의 유효하지 않은 아이콘을 제거합니다.
매개 변수:
■ 팝업 상자 제목: 문자열; 팝업 상자 제목에 표시되는 텍스트입니다. 64자를 초과할 수 없으며 초과 부분은 무효화됩니다.
■ 팝업 상자 내용: 문자열; 팝업 상자의 본문 내용입니다. 256자를 초과할 수 없습니다. 동시에 "\ n"은 줄 바꿈으로 사용됩니다.
■ 팝업 상자 지속 시간: 숫자, 팝업 상자의 연속적인 표시 시간(밀리초)을 나타내는 값입니다. 생략된 경우 기본 값은 10초입니다. 가장 긴 표시 시간은 시스템에 의해 결정됩니다.
■ 아이콘 스타일 ID: 숫자. 0은 기본 값으로 아이콘이 없음을 나타냅니다. 1은 정보 아이콘, 2는 경고 아이콘, 3은 오류 아이콘, 4 이상의 값은 트레이 아이콘을 나타냅니다.
■ 팝업 상자 위치: 선행 문자 "@ "이어야 합니다. 지정된 위치에 팝업 상자를 표시하는 것을 나타냅니다. 선행 문자 "A"는 화살표 형태의 팝업 상자를 나타냅니다. 생략된 경우 직사각형 모양의 팝업 상자가 표시됩니다. 위치는 LxxTyy (xx와 yy는 숫자를 나타냅니다.)로 표현됩니다. 이 매개 변수는 트레이 아이콘과 함께 사용할 수 없습니다.
■ 트레이 아이콘: 형식은 "파일 이름 # 번호"입니다. "파일 이름"을 생략하면 PECMD.EXE 프로그램 리소스에서 지정된 아이콘을 사용합니다.
예제:
◆ TIPS 제목, 내용 \ n 줄 바꾸기 가능 \ n 라인 3 , 5000,1 , # 1
◆ TIPS 제목, 내용 \ n 줄 바꾸기 가능 \ n 라인 3 , 5000,2, @ aL600T400
비고 :
※ 트레이 바 거품형 팝업 상자는 PECMD.EXE가 종료된 후에도 계속 표시됩니다. PECMD.EXE 수명이 팝업 상자 지속 시간보다 긴 경우, PECMD.EXE는 지정된 시간 후에 팝업 상자를 종료합니다. PECMD.EXE 수명이 종료된 후에 아직 존재하는 팝업 상자는 시스템 또는 사용자에 의해 처리됩니다.
※ 화면 팝업 상자는 PECMD 종료 후에 종료됩니다. 따라서 PECMD 수명이 팝업 상자의 (WAIT 명령 지연)보다 약간 더 길게 유지되도록 해야 합니다.


 

19. [WAIT] 지정된 시간동안 기다리기


형식 : WAIT [-] [ 대기 시간 ], [ 양적 변화 이름 ]
기능 : 지정된 시간 동안 대기한 후 명령을 일시 중지하거나 계속 실행합니다.
매개 변수:
■ 선행 문자 "-": 지정된 대기 시간 동안 어떤 키라도 만나면 대기를 중지합니다. 그렇지 않으면 대기 시간이 끝날 때까지 대기합니다.
■ 대기 시간: 숫자 값 (단위: 밀리초). 값이 0인 경우 어떤 키를 만나면 일시 중지됩니다. 키가 없으면 무기한 대기합니다 (계속하려면 아무 키나 누릅니다).
■ 양적 변화 이름: 대기 시간 동안 키를 변수에 저장하기 위해 사용됩니다. 사용자의 키 결과는 지정된 변수에 저장됩니다.
예제:
◆ WAIT 2000
◆ WAIT 0, PKey
비고 :
※ 매개 변수가 0인 경우 일시 중지합니다. 아무 키나 눌러 계속합니다. 짧은 간격으로 일시 중지 기능을 연속적으로 사용하지 않으며, 일시 중지 기능은 한 번만 사용하는 것이 좋습니다. WAIT 0은 사용자의 'A' ~ 'Z' 또는 '0' ~ '9' 키를 감지할 수 있습니다. 변수 이름을 생략하면 키 결과가 환경 변수 %PressKey%에 저장됩니다.

 

20. [WALL] 바탕화면 지정


형식 : WALL < 배경화면 파일 이름 >
기능 : 배경화면을 설정합니다.
매개 변수:
■ 배경화면 파일 이름
예제:
◆ WALL%CurDrv% \ external program \ WallPage.JPG
비고 :
※ 환경 변수와 다양한 형식의 그림 파일을 지원합니다. 배경화면 설정의 WALL 명령은 데스크톱을 로드하는 SHEL 명령 이전에 있어야 합니다.
※ 이 명령은 명령 줄에서 사용할 수 없습니다. 구성 파일에서만 사용할 수 있습니다.

 

 

 

21.  [ENVI] 환경변수 설정



형식 : ENVI [$ | @ | *] [ 이름 ] [ [ = ] 값 ]
기능 : 환경 변수를 설정하거나 해제합니다.
매개 변수:
■ 환경 변수의 이름과 값을 지정합니다. 첫 글자를 생략하고 값이 지정되지 않은 경우, 지정된 이름의 환경 변수가 삭제되는 변수입니다.
■ 선행 문자 "$"는 시스템 수준 환경 변수를 설정하는 것을 나타냅니다. 이 문자가 없으면 해당 명령은 프로그램 내부에서 사용되는 환경 변수(프로세스 수준)만 설정할 수 있습니다.
■ 선행 문자 "@"는 창 컨트롤의 이름 또는 제목을 설정하는 것을 나타냅니다.
■ 선행 문자 "*" (이름과 값 생략)은 CD-ROM 드라이브 문자를 시스템 환경 변수에 CDROM0, CDROM, CDROM1, CDROM2로 기록합니다.
예제:
◆ ENVI TEMP=%SystemDrive%\TEMP
비고:
※ "EXEC"로 실행되는 프로그램을 사용할 경우, 프로그램의 환경 변수는 자동으로 상속됩니다. 즉, 구성 파일에서 "EXEC" 프로그램 뒤에 "s" 환경 변수가 설정되면 해당 프로그램에 적용됩니다.
※ 명령 프롬프트에서는 매개 변수 없이 ENVI 명령을 사용하여 환경 변수를 새로 고칠 수 있습니다.
※ 매개 변수 "s"만 있는 경우 사용자 폴더를 초기화합니다. 명령 프롬프트에서도 환경 변수를 새로 고칠 수 있습니다.

 

 

 

22.  [SITE]  파일 또는 폴더의 속성 추가 및 제거



형식 : SITE < 파일 디렉터리 경로 >, < 파일 디렉터리 속성 >
기능 : 파일 디렉터리 속성을 설정하거나 제거합니다. SITE 명령은 A, H, R 및 S의 네 가지 속성을 지원합니다.
매개 변수:
■ 속성을 설정하려면 ” +”를 사용하고, 속성을 제거하려면 “-”를 사용합니다(A = ARCHIVE; H = HIDDEN; R = READONLY; S = SYSTEM).
예제:
◆ SITE%SystemRoot% \ System32 \ PELOGON.EXE, + H + R
비고 :
※ SITE 명령은 파일 속성과 디렉터리 속성을 설정할 수 있습니다.

 

 

 

 

 

23. 예제로 보는 PECMD.INI (1)

 

//WIN10PE의 PECMD 구성 파일 시작

//초기화
DISP
EXEC @=%SystemRoot%\System32\LetterSwap.exe /auto /log %SystemRoot%\LetterSwap.log
INIT

//LOGO %windir%\Web\Wallpaper\Windows\LogoBack.JPG
//TEXT A-BO 유지 관리 시스템에 오신 것을 환영합니다. #0xFFFF00 L390 T25 $20:Microsoft Yahei *

//작은 숫자 키를 끕니다
NUMK 0

//데스크톱 또는 노트북 스위치 키패드인지 결정
EXEC %Windir%\SysWOW64\AutoNmLk.exe

//드라이브 문자 정렬 후 USB 안전 꺼내기 도구 시작
TEAM EXEC =!%ProgramFiles%\orderdrv\orderdrv.cmd|EXEC %SystemRoot%\SysWOW64\EjectUSB.exe

//커널이 있는 파티션 경로를 찾아 하드디스크 설치 경로만 wimPath 변수에 사용
FORX \BOOT\Boot10x64.wim,fPath,0,ENVI wzPath=%fPath%
FIND $%wzPath%=,!TEAM FDRV wimPath=%wzPath%|ENVI wimPath=%wimPath%\BOOT

//작업 표시줄이 병합되지 않는 경우: 0=Always combine, hide labels(기본)   1=Combine when taskbar is full   2=Never combine
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarGlomLevel=#0
//알림 영역에는 항상 모든 아이콘 표시
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\EnableAutoTray=#0
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\IconsOnly=#1
//컴퓨터 이름
//REGI HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName=A-BO
//REGI HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName=A-BO
//REGI HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Hostname=A-BO
//REGI HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\NV Hostname=A-BO
//REGI HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ComputerName=A-BO
//작업 표시줄 시계에 초 단위 표시
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSecondsInSystemClock=#1
//바로가기 화살표 삭제(vanilla shell32.dll.mun에만 해당)
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons\29=%Windir%\system32\imageres.dll,197

//내 컴퓨터 우클릭 메뉴 추가
REGI HKCR\Folder\shell\cmd\=여기서 명령 창 열기(&W)
REGI HKCR\Folder\shell\cmd\command\=cmd.exe /s /k if exist "%V" pushd "%V"
//REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\명령 프롬프트\=명령 프롬프트(&B)
//REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\명령 프롬프트\SuppressionPolicy=#4000003c
//REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\명령 프롬프트\command\=CMD.exe
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\레지스트리 편집기\=레지스트리 편집기(&E)
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\레지스트리 편집기\SuppressionPolicy=#4000003c
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\레지스트리 편집기\command\=Regedit.exe
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\디스크 관리\=디스크 관리(&Y)
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\디스크 관리\SuppressionPolicy=#4000003c
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\디스크 관리\command\=mmc.exe /s diskmgmt.msc
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\장치 관리자\=장치 관리자(&H)
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\장치 관리자\SuppressionPolicy=#4000003c
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\장치 관리자\command\=mmc.exe /s devmgmt.msc
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\숨겨진 파티션 표시\=숨겨진 파티션 표시(&I)
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\숨겨진 파티션 표시\SuppressionPolicy=#4000003c
REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\숨겨진 파티션 표시\command\=PECMD.EXE SHOW -1:-1
//REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\날짜 및 시간\=날짜 및 시간(&T)
//REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\날짜 및 시간\SuppressionPolicy=#4000003c
//REGI HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\날짜 및 시간\command\=control timedate.cpl
//바탕 화면을 마우스 오른쪽 버튼으로 클릭하여 Explorer 새로 고침 추가
REGI HKCR\Directory\background\shell\killexplorer\=Explorer 새로 고침
REGI HKCR\Directory\background\shell\killexplorer\Icon=%windir%\System32\SHELL32.dll,238
REGI HKCR\Directory\background\shell\killexplorer\Position=Top
REGI HKCR\Directory\background\shell\killexplorer\Command\=PECMD.exe kill explorer
//바탕 화면을 마우스 오른쪽 버튼으로 클릭하여 디스플레이 설정 추가
REGI HKCR\DesktopBackground\Shell\Resolution\=디스플레이 설정(&C)
REGI HKCR\DesktopBackground\Shell\Resolution\Icon=%windir%\System32\Display.ico
REGI HKCR\DesktopBackground\Shell\Resolution\Position=Bottom
//REGI HKCR\DesktopBackground\Shell\Resolution\command\=PECMD.exe DISP -guis
REGI HKCR\DesktopBackground\Shell\Resolution\SettingsUri=ms-settings:display
REGI HKCR\DesktopBackground\Shell\Resolution\command\=WinXShell.exe ms-settings:display
EXEC -hide "%ProgramFiles%\WinXShell\WinXShell.exe" -regist -daemon

//Explorer 사용자 설정
``숨김 파일 및 폴더 표시: 0,2=숨김 파일 및 폴더 표시 안 함   1=숨김 파일 및 폴더 표시
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden=#1
``알려진 파일 형식의 파일 확장명 숨기기: 0=사용 안 함   1=사용
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt=#0
``보호된 운영 체제 파일 숨기기: 0=사용(권장)   1=사용 안 함
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden=#0



//"시작" 숨기기
SITE %Startup%,+H
SITE %Programs%\Administrative Tools,+H

//휴지통 크기 0으로 설정
//RECY *:\,0

//도구 로드(바탕 화면 단축키 등)
LOAD "%ProgramFiles%\OP.INI"

//EXEC "%MyName%" WALL %windir%\Web\Wallpaper\Windows\img0.jpg

//바탕 화면 시작하기
//SHEL %WinDir%\Explorer.exe
IFEX "%wimPath%\PEPW.ini",LOAD "%wimPath%\PEPW.ini"!SHEL explorer.exe

//바탕 화면 desktop.ini(숨김 파일) 삭제
FILE %ProgramFiles%\desktop.ini
EXEC "%MyName%" FORX * 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,I,TEAM FILE %public%\desktop\desktop.ini|FILE %desktop%\desktop.ini|WAIT 500

EXEC %SystemRoot%\system32\wpeinit.exe

 

//익스플로러 재시작 핫키(f9)  등록하기
hotk #119,kill explorer.exe

 

//익스플로러 재시작

kill explorer.exe

 

 

 

 

24. 예제로 보는  pecmd.ini (2)

 

LOGS %WinDir%\System32\Pecmd.log
LOGO %WinDir%\WallPaper.jpg
NUMK 1
EXEC =!%WinDir%\System32\AU3381.exe %WinDir%\System32\LetterSwap.au3 /bootdrive Y:\CDUsb.y %temp%\LetterSwap.log /IgnoreLetter XY /auto
DISK ,,,3,U
EXEC !@wpeinit.exe
FORX !\Tools11\PinUtil.ini,iniFile,1,TEAM LOAD %iniFile%|FLNK %WinDir%\QndPESet.ini,%iniFile%,1
SHEL %WinDir%\explorer.exe
EXEC !%WinDir%\System32\pnputil.exe /add-driver %WinDir%\inf\*.inf /install
EXEC !%WinDir%\System32\Drvindex.exe -h
font %WinDir%\Fonts
EXEC !%WinDir%\System32\FixScreen.exe

 

EXEC =!%ProgramFiles%\7-Zip\7z.exe x %CurDir%\Chrome.7z -y -o"%ProgramFiles%\"

FILE %CurDir%\*.*=>%ProgramFiles%\Rainmeter\
EXEC %ProgramFiles%\Rainmeter\Rainmeter.exe

 

LOAD %iniFile%
EXEC =!%WinDir%\Config.cmd
EXEC =%WinDir%\QndPESet.exe /PESet %iniFile%
REGI #HKLM\SYSTEM\Setup\SystemSetupInProgress=0
EXEC !%WinDir%\System32\Net.exe Start netprofm
REGI #HKLM\SYSTEM\Setup\SystemSetupInProgress=1
EXEC !SetWG.exe WORKGROUP
REGI HKLM\SYSTEM\Setup\SystemSetupInProgress=#0
EXEC %ProgramFiles%\PENetwork\PENetwork.exe
EXEC !%WinDir%\System32\shortcuts.exe -f "%WinDir%\Association.cfg"
WAIT 250
EXEC =!%WinDir%\System32\nircmd.exe setsysvolume 21626
EXEC !%WinDir%\System32\mpg123.exe -q %WinDir%\Media\startup.mp3
EXEC %SystemRoot%\SysWOW64\CoolEjectUSB.exe
EXEC !%WinDir%\System32\IME.cmd
EXEC !%ProgramFiles%\Imagine\Imagine64.exe /assocext /regcontextmenu


EXEC !SC Start MSiSCSI
SITE %UserProfile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,+S+H
SITE %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup,+S+H

LINK %StartMenu%\Windows 관리\디스크 관리,%WinDir%\System32\diskmgmt.msc
LINK %StartMenu%\Windows 관리\장치 관리자,%WinDir%\System32\devmgmt.msc
LINK %StartMenu%\Windows 관리\컴퓨터 관리,%WinDir%\System32\compmgmt.msc
LINK %StartMenu%\Windows 보조\계산기,%WinDir%\System32\win32calc.exe
LINK %StartMenu%\Windows 보조\그림판,%WinDir%\SysWOW64\mspaint.exe
LINK %StartMenu%\Windows 보조\메모장,%WinDir%\System32\notepad.exe


TEAM FILE %public%\Desktop\desktop.ini| FILE %Desktop%\desktop.ini
ENVI @@DeskTopFresh=1
TIPS PE 시스템 설정 완료, Please Wait ...,,1,#1
WAIT 2000
HOTK F9,kill explorer.exe
 

댓글