강좌 / 팁

소프트웨어 PE 에서 바로 가기 생성 배치 파일에 대한 고찰

2022.08.28 22:04

지후빠 조회:2209 추천:25

안녕하십니까?

사용기 게시판에서 눈에 띄어 한두가지 시도해봅니다. 개선인지 아닌지를 몰라서 제목에 '고찰'이라 하였습니다.^^

얼마전 -0-님이 나눔해주신 PrincePE+.wim 으로 부팅해서 테스트 하였습니다.

 

X:\Windows\DeskLnk 폴더에 DeskLnk.cmd 와 Start_Menu.cmd 에서 바로 가기를 생성하는 부분에 대한 이야기입니다.

 

DeskLnk.cmd -관련성이 떨어진 부분은 생략하였습니다.-

@echo off

pushd %~dp0

:Tools

for %%a in ("X:\Tools\*.exe") do (

 Shortcut.exe /f:"%USERPROFILE%\Desktop\%%~na.lnk" /a:c: /t:"X:\Tools\%%~na.exe" /w:X:\Tools

)

for /f "tokens=* usebackq" %%a in (`dir /b/ad "X:\Tools\"`) do (

 for %%b in ("X:\Tools\%%~na\*.exe") do (

  Shortcut.exe /f:"%USERPROFILE%\Desktop\%%~nb.lnk" /a:c: /t:"X:\Tools\%%~na\%%~nb.exe" /w:X:\Tools

))

exit

 

Start_Menu.cmd <- 서브폴더에 대한 아이콘 생성은 누락되어 있음.

@echo off

pushd %~dp0

:Tools

for %%a in ("X:\Tools\*.exe") do (

 Shortcut.exe /f:"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\%%~na.lnk" /a:c: /t:"X:\Tools\%%~na.exe" /w:X:\Tools

)

exit /b

 

 

위 두개 배치파일에서 큰 문제는 아니지만 몇가지 눈에 거슬리?는 부분이 있습니다.

- PE에서 모두 있을 것 같은데요. 실컴에서는 없는 %StartMenu% %Desktop% 환경 변수가 있습니다.

- /a:c: 옵션은 /a:c 로 쓰는 것이 맞을 것 같습니다.

- 서브 폴더에 있는 파일에 대해 바로 가기를 만들때 작업폴더가 X:\Tools 고정 되는 문제가 있습니다.

- 원하지 않은 아이콘 생성을 피하기 위해 단일 exe로 만들어야 하는 문제가 있는 것 같습니다.

 

단일 파일이 아닌 압축이 해제된 상태에서 exe를 걸러 내는 방법은 "읽기 전용" "숨김" 속성을 활용할 수 있겠습니다.

- PrincePE+.wim 처럼 작업표시줄 우측에 Tools 도구모음을 사용하는 경우에는,

- 바로 가기를 만들 파일을 제외한 모든 파일에 숨김 속성을 주어야 할 것 같고, 

- 단순히 바탕화면이나 시작메뉴에 바로가기만 만든다면 숨길 exe에 읽기 전용 속성을 주는 방법도 좋을 듯 싶습니다.

 

 

이러 것을 고려하여 다음처럼 수정할 수 있을 것 같습니다.

- 숨김 속성을 설정했으면 dir 옵션중에 /a-h 사용, 읽기 전용 속성을 주었으면 /a-r 사용해야 합니다.

- /w:"%%~dpa 끝에 쌍따옴표 없이 사용합니다. 임으로 추가하지 마십시오.

 

DeskLnk.cmd

@echo off & pushd %~dp0

:Tools

for /f "tokens=*" %%a in ('dir "X:\Tools\*.exe" /b/a-h/s') do Shortcut.exe /f:"%Desktop%\%%~na.lnk" /a:c /t:"%%~fa" /w:"%%~dpa

exit /b

 

Start_Menu.cmd

@echo off & pushd %~dp0

:Tools

for /f "tokens=*" %%a in ('dir "X:\Tools\*.exe" /b/a-h/s') do Shortcut.exe /f:"%StartMenu%\%%~na.lnk" /a:c /t:"%%~fa" /w:"%%~dpa

exit /b

 

 

두개가 목적지만 다르고 같은 문법이라서 한발 더 나가 서브 프로시저로 수정해봅니다.

- 소스 폴더와 목적 폴더만 주어지면 쉽게 원하는 결과를 얻을 수 있을 것 같습니다.

 

@echo off & pushd %~dp0

call :LNK "X:\Tools" "%StartMenu%"

call :LNK "X:\Tools" "%Desktop%"

exit /b

 

:LNK

for /f "tokens=*" %%a in ('dir "%~1\*.exe" /b/a-h/s') do shortcut.exe /f:"%~2\%%~na.lnk" /a:c /t:"%%~fa" /w:"%%~dpa

exit /b

 
댓글에 왕초보님이 pecmd 사용예를 보여주셔서 shortcut.exe 에서 pecmd.exe 로 대체한다면 다음과 같겠습니다.(테스트는 퇴근후...)
:LNK
for /f "tokens=*" %%a in ('dir "%~1\*.exe" /b/a-h/s') do pecmd.exe LINK %~2\%%~na,%%~fa
exit /b
 
 
- X:\Tools 폴더에 14개의 exe가 있는데 "서브 폴더"를 만들어 5개를 이동하였습니다. 4개의 exe에 '숨김' 속성 부여.
lnk01.jpg

 

- '숨김' exe를 제외하고 단축 아이콘이 만들어졌습니다.
shortcuts.gif

 

결론은 서브 폴더 구성과 숨김 속성을 활용하면 좀 더 복잡한 파일/폴더 구성이 허용될 수 있다는 것입니다.

이미 PE 고수분들의 충분한 검토하에 만들어진 것인데 헛다리를 짚고 있는지도 모르겠습니다. ^^;

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4203 모 바 일| [팁] 스마트폰 스피커 물 빼기 [1] asklee 2726 2 09-19
4202 윈 도 우| 디펜더 전체검사때, CPU 100% 급상승 해결하기 [4] zerojiddu 2409 8 09-16
4201 소프트웨어| VirtualBox 7.0.0 Beta - 새로운 기능 및 TPM 설정 [4] VᴇɴᴜꜱGɪ 1725 6 09-13
4200 소프트웨어| 드라이브 문자 할당/제거 배치파일 [17] 지후빠 2070 23 09-12
4199 윈 도 우| 리소스 잡아먹는 Edge 설정 한방에 하기 [39] zerojiddu 8049 30 09-06
4198 소프트웨어| Total Commander 10.5x 32비트 및 64비트용 확장 한국어 메... [12] VᴇɴᴜꜱGɪ 2280 18 09-05
4197 윈 도 우| 무인 마우스 포인터 이동, 키 터치 작동 파워셀 코드 [2] zerojiddu 1270 6 09-03
4196 소프트웨어| Google Chrome에서 최소 탭 너비를 설정하는 방법 [1] VᴇɴᴜꜱGɪ 1474 8 08-30
4195 윈 도 우| 잘 안쓰는 window apps , 파워셀 명령어로 한번에 제거하기 [11] zerojiddu 2879 12 08-29
» 소프트웨어| PE 에서 바로 가기 생성 배치 파일에 대한 고찰 [17] 지후빠 2209 25 08-28
4193 소프트웨어| 윈포 쪽지 전달 반자동화 AHK 매크로(배포중지) [39] 지후빠 1748 31 08-23
4192 소프트웨어| True Image 실행 시 삭제한 백업 폴더가 다시 생성되는 문... [1] 봄빛깔 1205 8 08-21
4191 윈 도 우| [실사] 만능WIM 응답파일(Unattend.xml) 교체 [33] 무월 3000 30 08-21
4190 소프트웨어| Rufus를 사용하여 Windows 11 부팅 가능한 USB를 만드는 방법 [24] VᴇɴᴜꜱGɪ 4372 30 08-16
4189 소프트웨어| 간단한 파일/폴더 백업 배치 파일 - BackupToZip [29] 지후빠 2697 27 08-14
4188 소프트웨어| 배치파일을 시스템 트레이로 숨김 실행하기 AHK [15] 지후빠 1482 9 08-13
4187 소프트웨어| EasyDrv 활용법 [10] 타천사둘리 3230 8 08-12
4186 기 타| 나스 토런트 감시폴더에 Torrent 파일 자동 전송 (수정) [1] 슈머슈마 1217 9 08-11
4185 서버 / IT| Linux Mint 20.3 에서 Linux Mint 21로 업그레이드 [2] VᴇɴᴜꜱGɪ 909 7 08-09
4184 소프트웨어| X32dbg 이용한 언팩 강좌 입니다 [4] 줄리아니 959 6 08-06
XE1.11.6 Layout1.4.8