강좌 / 팁

윈 도 우 배치파일 응용 - Wim 외부파일 실행

2016.05.23 16:45

히이이잌 조회:4875 추천:4

이 글의 목적은 Y 마운팅을 쓰지 않는 PE에서도
Wim파일 용량 부담을 벗어나기 위함입니다.

먼저 이 글에서 꼭 알고 넘어가야할 For 명령어에 대해서 알아보겠습니다.

제가 설명하는건 아래 링크에 있는 내용을 다시한번 풀어서 설명하는것이기에,
자세히 알고 싶으시면 링크를 참조하세요.
https://snoopybox.co.kr/1366


For 구문은 '원하는 결과가 나올때까지 명령을 반복' 하는데 주로 사용됩니다.
이를 이용해서, A라는 파일이 나올때까지 A:\, B:\, C:\, D:\.......Z:\ 까지 찾아라! 이런식으로 많이 활용을 하게 됩니다.
이렇게 하면 원하는 파일이 위치한 드라이브의 문자열을 알아낼수 있게 되겠죠.

위의 과정으로 얻어낸 드라이브 문자열을 '변수'(임시로 A는 B다 라고 선언하는것)에 지정을 하면,
항상 드라이브 문자열이 바뀌더라도, 같은 배치파일로 실행이 가능합니다.


================================================================================================
설명은 여기까지 하고 예제로 넘어가겠습니다.
검정색은 코드, 녹색 글씨는 주석입니다. (코드에 관여하지 않습니다. 주석처리가 이미 되어있어 전체복사해서 써도 정상작동합니다.)

첫번째로 지난번에 소개한적 있는 7Z 사용법을 응용해보겠습니다. (https://windowsforum.kr/lecture/7426411)

이 예제는 드라이브의 루트(최상위)에 있는 PF.7z 파일을
X:\에 압축을 푸는 배치파일입니다.

@echo off
rem 반향해제 (입력한 명령어를 보여주지 않음)

mode con cols=17 lines=2
rem 안내멘트 한줄과 완료 문구 한줄 띄울만큼만 창을 작게 줄임 (cols = 가로길이 / lines = 줄 수)

for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
     if exist %%a\PF.7z set PF=%%a

rem  for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:)
rem  위의 경로(C~Z)에서

rem  if exist %%a\PF.7
rem  PF.7z 라는 파일을 찾게 되면

rem  set PF=%%a
rem  변수 PF = a 로 지정한다. (이제 PF.7z가 들어있는 드라이브명을 %PF%로 호출할수 있음)

> nul
rem 출력값을 nul로 보냄 (결과값을 허공에 보냄으로써 배치파일에 출력하지 않게 됨)

echo 프로그램 설치...
rem 실행시 보이게될 문구

"%systemdrive%\Program Files\7-Zip\7z.exe" x -aoa "%PF%\PF.7z" -ox: 
rem 7z 명령어는 이전글을 참조하세요. (https://windowsforum.kr/lecture/7426411)
rem 7zip으로 %PF%\PF.7z 파일을 X:에 압축해제하며(x묻지 않고 덮어씌운다(-aoa)

> nul
rem 출력값을 nul로 보냄 (결과값을 허공에 보냄으로써 배치파일에 출력하지 않게 됨)

echo 완료!
rem 완료멘트

ping -n 2 127.1>nul
rem 의미없는 핑 테스트로 시간지연, >nul 리다이렉션으로 출력값 숨김

exit
rem 종료


 

1.jpg 

================================================================================================

두번째로, 7z를 통하지 않고 그냥 USB에서 파일을 불러오는 방법에 대해 알아보겠습니다.

이 예제는 USB안 "\DrvPack\W10_64\"라는 폴더 속에 있는 이지드라이버팩 중 네트워크 드라이버팩을 실행하는 배치파일입니다.
압축이 풀려있어야 편한 파일들 (꼭 PE에서만 사용하는 파일이 아닌 경우)에 유용하겠죠.

또한 예시를 드라이버팩으로 든 이유가, 일시적으로만 필요하고 Wim 내부에 넣기엔 용량낭비가 심한 대표적인 파일이어서 그렇습니다.

@echo off
rem 반향해제 (입력한 명령어를 보여주지 않음)

for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
     if exist %%a\DrvPack\W10_64\ set Drv=%%a
) > nul

rem  for %%a in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:)
rem  위의 경로(C~Z)에서

rem  if exist %%a\DrvPack\W10_64\
rem  \DrvPack\W10_64\ 라는 폴더를 찾게 되면

rem  set Drv=%%a
rem  변수 Drv = a 로 지정한다. (이제 드라이버팩이 들어있는 드라이브명을 %Drv%로 호출할수 있음)

> nul
rem 출력값을 nul로 보냄 (결과값을 허공에 보냄으로써 배치파일에 출력하지 않게 됨)

start %DRV%\DrvPack\W10_64\Drivers(Win10.x64)\Network\[Network]WanDrv6.exe
rem start (실행) 한다.

exit 
rem 종료


2.jpg

(이해를 돕기 위해 명령어가 일부러 보이게 한것입니다. 실제로는 명령프롬프트창은 순간적으로 열렸다가 닫힙니다.)





위 과정을 거치면
오피스, 드라이버팩과 같은 무거운 프로그램들을 Y마운팅을 하지 않고도 바깥으로 뽑아낼수 있게 됩니다.
나름 쉽게쉽게 쓰려고 했지만 글이 어지럽네요. 읽어주셔서 감사합니다.

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
1657 윈 도 우| 입니다님 PE를 rufus 이용하여 굽기 / rufus로 usb에 윈도 ... [5] 스마트(SMART 6479 15 12-13
1656 기 타| batch 파일 정복 [19] gooddew 5387 14 12-17
1655 윈 도 우| Windows 10 BuildLabEx, 레지스트리 값이 다르다는 분들 [3] kernel 2376 3 12-18
1654 윈 도 우| 윈도우의 상세한 빌드정보 ★ 윈빌드 0.9 유틸공개 [11] Star★Bros 4109 3 12-18
1653 하드웨어| [팁] USB 3.0과 2.4 GHz 무선 제품사이의 전자파 간섭 문제... [3] asklee 7121 4 12-18
1652 윈 도 우| Easy Sysprep 3 봉인 중.. 봉인 실패가 발생하는 경우.. [1] 은주얌 3938 4 12-21
1651 윈 도 우| UEFT GPT 디스크 형식으로 윈도우 vhdx 자식 2개 운영하기 [3] ANT-MAN 4198 4 12-22
1650 윈 도 우| UEFI<->BIOS모드 전환하기 [사용하는 그대로] [6] suk 7271 7 12-24
1649 윈 도 우| MediaCreationTool 0x8000FFFF - 0x20016 에러 솔트 2240 1 12-25
1648 윈 도 우| 꼴보기 싫은 windows.old 폴더 깨끗이 삭제하기 ★ [8] Star★Bros 6776 5 12-25
1647 윈 도 우| 작업표시줄(보관용) 머린 3425 2 12-26
1646 윈 도 우| IE 11 인터넷 익스플로러 옵션 레지스트리 [6] 또냥이 8386 5 12-27
1645 기 타| [팁] NAS(시놀,헤놀)관련-서버에 간단히 torrent 다운로드 ... [5] sokury 3565 0 12-28
1644 윈 도 우| 윈도우10에서 드라이버 서명적용 체크 영구적으로 해제하기 ★ [4] Star★Bros 4882 2 12-29
1643 윈 도 우| 윈도우10에서 기본적으로 허용되어있는 개인정보데이터수집... [5] Star★Bros 6102 8 12-29
1642 서버 / IT| 마소 서버2012R2 인텔 I218-V 드라이버 설정하는 방법입니... [3] 쏘가리차차 2538 0 12-29
1641 윈 도 우| 부팅시 항상 F8키를 눌러 부팅메뉴로 진입할 수 있게하기 ★ [2] Star★Bros 4114 2 12-30
1640 소프트웨어| 탐색기종료후 재시작을 간편하게~ ★리뉴탐색기 v0.9 배포 [6] Star★Bros 3120 2 12-30
1639 소프트웨어| Windows Update MiniTool 한글 적용하는 방법 [11] suk 3990 6 12-30
1638 윈 도 우| 윈도우10 windows 사진뷰어로 복원시키기 ★ [17] Star★Bros 6391 5 12-31
XE1.11.6 Layout1.4.8