마이크로소프트 윈도우 라고 하면 네모모양의 GUI 메뉴를 기본적으로 생각을 하고 계신 분들이 많습니다. 그것들은 윈도우를 편리하게 사용하기 위해서 만들어 놓은 장치들입니다. 편리하게 만들어 놓은 장치도 있지만, 대다수가 편리하게 생각하는 방법도 어떻게 쓰려는지에 따라 불편하게 느껴지게 마련입니다. ( 저는 이래서 컴퓨터를 알아가면 갈수록 어렵다는 생각이 들게 됩니다.)
사용자가 원하는 작업을 위해서는 굳이 GUI 메뉴를 이용할 필요는 없습니다. 바로 커맨드라인때문입니다.
커맨드라인은 윈도우에는 기본적으로 설치가 되어 있는 명령행프로그램입니다. 명령행이라는 단어에서 느껴지듯이 하나의 행을 기준으로 명령어가 실행되는 프로그램입니다. 이를 조금더 확장시켜 하나의 행을 실행하면서 결과를 반환하는 것들이 모여서 결과를 표시하거나 조합 변경시키는 것이 가능하도록 할수 있는 것이 배치파일입니다. 1
배치파일에는 명령행으로 작업할수 있는 부분의 한계는 분명히 있습니다. 하지만 그것들을 감안하더라도 충분히 알아둘만합니다.
일예로 여러 PC 의 특정폴더를 USB 메모리로 복사하는 예를 들어보겠습니다.
USB 메모리는 아시다시피 기본 하드디스크 문자의 가장 나중 문자로 드라이브문자를 할당받습니다. 결국 사용하는 PC의 드라이브갯수에 따라서 특정폴더명이 아무리 동일하도라도 드라이브문자가 달라지기때문에 그때마다 탐색기로 복사를 따로 하거나, 배치파일의 내용을 수정해서 사용을 해야 합니다.
딱보기에도 번거로워 보이고, 잊어먹기 딱 좋아보입니다.
그렇다면 어떻게 하는게 좋은 방법일까요..
정답은 배치파일에서 드라이브명을 찾아내서 변수로 처리를 하는 것입니다. 2
예제를 보여드리도록 하겠습니다. 예제는 snoopy님의 어제글인 VHD 파일 자동교체 부팅메뉴 등록하기 를 참조했습니다.
어떤 드라이브의 backup폴더내에 있는 win7x86.vhd 를 어떤 드라이브의 vhd 라는 폴더의 win7x86.vhd 로 복사하는 배치파일입니다. 여기서 사용된 %%A, %%B 는 변수로서 실행시마다 변경이 될수 있는 값입니다. 이를 이용해서 backup 폴더와 vhd 폴더 위치만 맞는다면 어디서나 사용이 가능합니다.
조금더 바꾸어 볼까요?
만약 같은 드라이브에 backup 폴더와 vhd 폴더가 있는 구조라면 어떻게 바꿀수 있을까요?
내부적인 변수를 선언해서 사용하는 예제로 변경을 한것입니다. 사용된 부분중 if exist 파일명 부분은 만약 파일이 있을경우 실행이 되도록 하는 것이고, IF NOT [%_DIR_REAL%]=[] 은 %_DIR_REAL% 라는 변수의 값이 없지 않을경우, 그러니까 있을경우에만 실행이 되도록 하는 것입니다.
제 경우에는 USB 메모리카드와 회사 PC, 집PC 의 데이터를 동기화시키는데 이용을 합니다.
참 많을 일을 할수 있을것 같지 않습니까?
'컴퓨터' 카테고리의 다른 글
WebDAV 인증 우회에 대한 취약점 (0) | 2010.01.27 |
---|---|
IIS 파일확장자 우회취약점은 IIS6 에서만 동작합니다. (1) | 2009.12.30 |
[ASP] Session.Timeout 최대값은 24시간 (0) | 2009.12.08 |
좋은 저장프로시저를 위한 21가지 팁 (2) | 2009.08.11 |
클립보드를 확장하자 멀티 클립보드 CLCL (0) | 2009.08.06 |