주로 노트북에서 kubuntu를 사용하지만
가족 모두가 쓰는 데스크탑은 비스타가 깔려있어서 비스타도 종종 쓰곤한다.
문제는 주식/웹서핑만하는 삼촌, 웹서핑으로 레시피 복사해다가 한글로 저장하는 엄마,
하는 거라곤 게임밖에 없는 동생외에 남은 구성원이 나 하나밖에 없다는 것.
컴퓨터에 문제가 생기면 나말고는 해결할 사람이 없다.
학업으로 서울에 올라가 있으면 나에게 전화를 하고 해결안되면 수리기사를 불러서 돈주고 고친다.
이번 주말을 비스타를 포멧후 복구하는데 날려먹고는
고스트이미지를 만들어서 DVD한장으로 동생이나 삼촌이 혼자서 복구시킬 수 있도록 해보려다가
어마무시한 비스타의 용량탓에 이미지를 DVD한장에 못구겨넣어 포기하고선
나라도 편하게 해볼 방도를 궁리했다.
결국 대부분의 시간을 잡아먹는 윈도설치시간을 줄일 수는 없고..
여기저기 산재되어 빠트리기 쉬운 내문서, 바탕화면, 즐겨찾기 등등을 백업하는 배치파일을 만들었다.
노트북에서 혼자서 XP를 쓸 때는 거의 대부분의 사용자 데이터파일을 다른 파티션에 저장해서
포멧이 매우 쉬웠지만 지금은 나만 쓰는 컴퓨터도 아니고 해서 여기저기 건드리기가 쉽지만은 않다.
설정을 좀 바꿔 놓으면 "XX야~~ 이거 왜 이러냐??" 하면서 불러대기 일쑤고
그때마다 왜 그렇게 하면 좋은지 앞으로 어떻게 쓰면 되는지를 설명해야 하고
엄마의 경우는 몇번이나 다시 물어보시기 때문에 가족공용 데스크탑 최적화는 포기했다.
본론으로 들어가서
비스타의 user폴더 안에 있는 내문서, 사진, 동영상, 즐겨찾기 등의 폴더를 복사하거나 복원하고
프로그램 파일 폴더안의 공인인증서 역시 백업/복원 하는 배치파일을 만들었다.
이것은 비스타에서 c:\user\ 내부의 내문서, 다운로드, 바탕화면 등등을 백업한다는 내용이다.
프로그램들이 설치되는 AppData와 별 필요없어 보이는 link와 searches 폴더는 제외했다.
저 내용을 메모장에 붙여넣고 .cmd 확장자를 주어 저장하면 된다.
콘솔창에서 명령어 뒤에 /? 를 붙인뒤 실행해보면 사용법을 알 수 있다.
간략하게 코드를 설명하자면..
@ECHO off
.............
ECHO.
ECHO 작업이 완료되었습니다. 스크롤을 올려 작업내역을 확인하십시오.
ECHO 는 ECHO 뒤에 오는 문자열을 콘솔창으로 되돌려 준다.
끝부분의 "ECHO 작업이 ~~~" 를 실행하면
콘솔창에 작업이 완료되었습니다. 스크롤을 올려 작업내역을 확인하십시오.
라는 문자열이 출력된다.
단 on과 off가 뒤따라오면 문자열을 줄지 말지를 설정할 수 있다.
echo off를 실행하면 이 이후의 명령어들은 echo가 꺼진다.
배치파일 실행중 일일이 명령어가 콘솔창에 나오면 귀찮으니 echo를 껐다.
echo앞의 @는 해당명령어를 echo하지 말라는 것이다.
@없이 echo off를 실행하면 echo off라는 명령어가 실행되며 이 문자열이 콘솔창에 찍히는데
이것 조차 보이기 원치 않기 때문에 @을 사용했다.
ECHO. 은 빈줄을 echo하기 위한 것이다.
만약 echo를 켜거나 끄지 않고 그냥 on 이나 off 를 echo하고 싶다면 ECHO.을 이용한다.
ECHO.on과 ECHO.off는 각각 on 과 off 라는 문자열을 echo한다.
백업폴더로 계속 복사명령만으로 백업을 계속 해준다면
나중에는 지워졌어야 하는 파일들이 복구되는 경우가 있다.
그래서 백업전에 기존에 있던 파일을 날려주고 폴더를 새로 생성한 다음 복사작업을 계속한다.
rd/S/Q D:\백업\Desktop
폴더를 지우는 명령어는 rd이다.
단, 폴더가 비어있지 않은 경우에는 지워지지 않는다. 그렇기 때문에 옵션을 준다.
/S는 폴더 그자체와 하위폴더, 내부 파일까지 모두 지운다.
/Q는 조용한 모드로 지우는데 별다른 문제가 없다면 지울지 물어보지 않는다.
mkdir D:\백업\Desktop
mkdir은 폴더를 만드는 명령어이다.
사실 mkdir은 unix/linux계열의 명령어이고 MS에서는 DOS시절부터 md라는 명령어를 쓰고 있다.
(이부분은 확실하지 않다. 이렇게 배웠고 DOS시절 내내 2글자짜리 명령어를 썼었다.)
비스타는 chdir, mkdir, rmdir 도 실행되지만 DOS에서는 각각 cd, md, rd라는 명령어를 써야한다.
원래 복사는 copy명령어를 쓰지만 copy 명령어로는 파일만을 복사할 수 있을 뿐이다.
그래서 xcopy 명령어를 쓴다.
/y는 덮어쓸지 물어보지 말 것, /e는 하위 빈폴더도 복사할 것, /h는 숨김파일도 복사할 것,
/k는 파일속성까지 복사할 것, /f는 복사과정에서 원본/대상의 전체경로를 출력할 것을 뜻한다.
%homedrive%는 windows가 설치된 드라이브 즉 c:를 뜻하며
%homepath%는 사용자의 home 디렉토리를 뜻한다.
사용자 계정이 Linus 라면 %homepath%는 \Users\Linus 가 된다.
단 이 환경변수들은 실행되기 전에 치환되므로
%ProgramFiles%같은 것들은 C:\Program Files 를 뜻하므로
""로 전체경로를 묶어줘야 정상동작한다.
pause
windows 버전에 따라서 다르겠지만
적어도 비스타에서는 .cmd파일을 실행시키면 실행이 끝나자마자 창이 닫혀 버린다.
편리하지만 사용자 입장에서는 과정을 보고 싶거나 결과를 보고 싶을 수도 있다.
이런 경우 창이 저절로 닫히는 것을 막기 위해서 사용한다.
저 명령어를 실행시키면 "계속하려면 아무 키나 누르십시오 . . ." 하는 문자열이 출력되면서
명령어의 진행이 잠시 멈춘다.
만약 실행이 끝난 뒤 그 창이 그대로 남아서 계속 그 창에서 명령을 실행시키고 싶다면
start /i /b 를 추가해준다.
이 명령이 실행되면 명령프롬프트가 명령을 기다릴 것이다.
/b는 새창이 아닌 현재창에서 프로그램을 실행하는 옵션이고
/i는 현재 환경을 초기화하여 원래 값으로 프로그램을 시작하는 옵션이다.
현재폴더로 백업, 현재폴더에서 복구하므로 경로확인이 중요하며
사용전에 반드시 내부 코드를 확인하고 이상이 없도록 정확하게 사용하기 바란다.
추가 - 2010.05.11
공인인증서는 program files 안에 NPKI 라는 폴더안에 몽땅 들어있다.
즉... PC방가서 program files 폴더를 뒤져서 NPKI 라는 폴더를 복사해온다면
다른 사람의 공인인증서를 손에 넣은 것이다. ( 물론 암호때문에 못쓰겠지만... )
그렇기 때문에 백업은 저 폴더를 복사해서 보관해두면 되는 것이고
복원은 저 폴더를 program files 에 복사해 넣으면 된다.
실제로 공인인증서 메뉴에서 백업기능을 이용해서 백업을 하더라도
단지 저 폴더를 복사하는 것에 불과하다.