상대경로 단축아이콘(비스무리한....것) 만들기
USB 드라이브나 CD상에 단축 아이콘을 만들고는 싶은 상황이 있습니다.
하지만 컴퓨터를 바꾸면 드라이브 문자가 바뀌기 때문에, 여지없이 깨져버리는 단축아이콘을 보게 됩니다.
그렇다고 윈도우즈에서 상대경로로 단축아이콘 만드는 것을 지원하냐면..... 그것도 아닙니다.
이럴때는 아래와 같은 방법으로 상대경로 단축아이콘........비스무리한 것을 만들면 됩니다.
만드는 방법
- 메모장을 열고 아래의 내용을 적습니다.
start "" "원하는 상대경로"
start / 한칸 띄고 / 큰따옴표 두개 / 한칸 띄고 / 큰따옴표 열고 / 원하는 상대경로 적고 / 큰따옴표 닫습니다.
ex1) start "" "./some directory/program.exe"
ex2) start "" "../another directory/document.pdf"
- 파일 - 저장 에서 파일이름을
"원하는 파일이름.bat"
로 하고, 원하는 경로(USB의 루트 정도가 되겠죠)에 저장합니다.1
이제 만들어진 파일을 실행하면 드라이브 문자에 상관없이 실행되는 것을 알 수 있습니다.
다만 방법의 한계 상 아이콘 모양은 구질구질한 cmd창 모양으로 됩니다.
원리
윈도우에 포함되어있는 내부 명령인 start를 사용합니다.
cmd창을 열고 start /? 를 입력하면 아래와 같은 start명령의 자세한 사용법을 볼 수 있습니다.
네, 사용방법을 자세히 보시면 알겠지만, 사실은 start 상대경로 식으로만 적어도 잘 작동합니다. 다만, 경로에 띄어쓰기가 포함된 경우, 경로를 따옴표로 묶어줘야 하는데, 이게 문법에서 ["제목"]과 충돌합니다. 따라서 충돌을 막기 위하여 위와 같이 적어줍니다.지정된 프로그램이나 명령을 별도의 창에서 시작합니다.
START ["제목"] [/D경로] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [명령어/프로그램]
[매개 변수]"제목" 창의 제목 표시줄에 나타낼 제목.
경로 시작 디렉터리
B 새 창을 만들지 않고 응용 프로그램 시작. 이 응용 프로그램은
^C 처리를 무시. 응용 프로그램이 ^C 처리를
활성화시키지 않는 한, ^Break로만 응용 프로그램을 인터럽트할
수 있음.
I 현재 환경이 아닌 새 환경을 원래의 환경 값으로 cmd.exe에 전달합니다.
MIN 아이콘을 표시하며 시작합니다.
MAX 전체 화면을 표시하며 시작합니다.
SEPARATE 별도의 메모리 공간에서 16 비트 Windows 프로그램 시작
SHARED 공유 메모리 공간에서 16 비트 Windows 프로그램 시작
LOW 응용 프로그램을 IDLE 우선 순위 클래스에서 시작
NORMAL 응용 프로그램을 NORMAL 우선 순위 클래스에서 시작
HIGH 응용 프로그램을 HIGH 우선 순위 클래스에서 시작
REALTIME 응용 프로그램을 REALTIME 우선 순위 클래스에서 시작
WAIT 응용 프로그램을 시작하고 끝날 때까지 기다림
명령어/프로그램
내부 cmd 명령 또는 일괄 파일인 경우, 명령 처리기는 /K 스위치를
사용하여 cmd.exe를 실행합니다. 이것은 명령 실행 후에도 창이
남아 있게 합니다.내부 cmd 명령 또는 일괄 파일이 아닌 경우, 이 프로그램은
창 모드 응용 프로그램, 또는 콘솔 응용 프로그램으로서 실행됩니다.
매개 변수 명령어/프로그램으로 전달되는 매개 변수입니다.
명령 확장을 사용하면 명령줄을 통한 외부 명령 호출이나 START명령이
아래와 같이 바뀝니다.실행 파일이 아닌 파일을 단지 파일 이름을 명령으로 입력함으로써
파일 연결을 통해 호출할 수 있습니다. (예를 들면 WORD.DOC는
.DOC 파일 확장자와 연결된 응용 프로그램을 시작합니다.)
명령 스크립트 안에서 이러한 연결을 만드는 방법을 알려면
ASSOC와 FTYPE 명령을 입력하십시오.32비트 GUI 응용 프로그램을 실행할 때는, CMD.EXE는
응용 프로그램이 끝나기를 기다리지 않고 명령 프롬프트로
반환됩니다. 명령 스크립트 안에서 실행되면 이러한 새 동작이
발생하지 않습니다.확장자나 경로 한정자 없이 첫 토큰이 CMD인 명령줄을
실행할 때는 CMD를 COMSPEC 변수의 값으로 바꾸며 따라서
최소한의 경우 임의의 CMD.EXE 버전이 선택되는 것을 막을 수 있습니다.첫 토큰이 확장자를 가지지 않는 명령줄을 실행할 때 CMD.EXE는
어떤 확장자를 어떤 순서로 찾을 것인지 결정하기 위해 PATHEXT
환경 변수 값을 사용합니다. PATHEXT 변수의 기본값은 아래와 같습니다.
.COM;.EXE;.BAT;.CMD구문에서 PATH 변수와 같이 ; 기호로 요소를 분리한다는 점에
유의하십시오.명령을 실행할 때는 확장자가 같지 않으면 확장자가 없는 이름이
디렉터리 이름과 같은 지 찾아보고 만약 있으면 START명령이
그 경로에서 탐색기를 시작합니다. 명령줄에서 이러한 것이 수행되면
그 경로에 CD /D를 수행하는 것과 같습니다.
응용편
* 폴더 탐색기로 열기
그냥 폴더를
start "" "./some folder/"식으로 지정해주면 자동적으로 탐색기로 열립니다.
* 프로그램 여러개 한번에 띄우기
한 줄에 하나씩
start "" "./folder1/program1.exe"식으로 연달아 지정해주면 됩니다.
start "" "./folder2/program2.exe"
start "" "./folder3/program3.exe"
* %programflies%같은 환경 변수 사용하기
컴퓨터마다 다를 수 있는 program files폴더 같은 경로를 지정하는데에 환경 변수를 사용할 수 있습니다.2
start "" "%programfiles%\Internet Explorer\iexplorer.exe"
start "" "%programfiles%\NATEON\BIN\NATEON.exe"
그 외에 위에 나와있는 start 명령어의 사용방법을 응용하여 다양한 분야에 활용이 가능합니다.
Hangul.ScreenFont.Readablity.ChiMyo.rel.pdf
daemon_mounter_ChiMyo.reg