응용프로그램2011. 10. 25. 00:09

*주석을 삭제하는 걸 잊었음-_- 11-10-26 21시 이전에 받은 사람은 첨부 파일을 다시 받아주세요ㅠㅠ


윈도우7에는 mklink로 정션(심볼릭 링크)을 만드는 방법이 있다. 일일이 콘솔에서 입력하는 것도 물론 짜증이지만, 나와 있는 GUI 프로그램도 써보니 영 불편하고 해서, 배치파일을 직접 만들었다.

기본적으로 시스템 파티션(C:)을 깨끗하게(=적게) 유지하고 싶고, 응용프로그램이나 프로그램 데이터는 모두 다른 파티션에 보관하고 싶은 게 우리(!)의 공통 관심사이다.

*주의: 이하 정션이 뭔지 알고 위와 같은 불편함을 해소하고자 하는 사람만 계속 읽고, 모르는 사람은 그냥 관심 끄고 살면 되겠다.

문제는 몇몇 프로그램의 경우 C: 외의 경로에 설치해도 프로그램 데이터를 C:에 보관한다는 점이다. 대표적으로 C:\ProgramData 폴더라든가 C:\Users\사용자명\Application Data라든가 C:\Users\사용자명\AppData라든가.

대표적으로 어도비의 경우 프로그램은 C:가 아닌 곳에 깔았는데도 C:\Program Files (x86)\Common Files\Adobe 폴더에 뭔가 쥰내 큰 데이터를 저장하니 짜증이 나 죽을 지경이다. C:는 SSD이므로 용량이 없단 말이다! 또 다른 예로, 스팀이나 오리진의 경우도 엄청나게 큰 게임 클라이언트를 무조건 C:에 설치하려니 난감하고.

이럴 때 우리는 정션을 떠올린다. 스누피 님의 문서(새창) 등을 참고해서 말이지. 다음 파일은 정션 만드는 방법을 자동화한 배치파일이다. *주석을 삭제하는 걸 잊었음-_- 11-10-26 21시 이전에 받은 사람은 다시 받아주세요ㅠㅠ

makeJP.bat

다운로드해서, 사용하기 전에 먼저 반드시 배치파일을 열고 실제 데이터가 보관될 폴더를 지정해야 한다. 그다음 이 파일을 보내기 폴더(shell:sendto)에 넣은 다음, 정션을 만들고자 하는 폴더에 우클릭>보내기>makeJP.bat를 선택하면 된다.

*주의: 보내기 폴더(shell:sendto)가 뭔지 모른다면... 먼저 조사하고 오길 권한다.

예를 들어 C:\ProgramData\Adobe 폴더 용량이 너무 커서 L:\shit damn motherfucker 폴더로 옮기고 싶다고 가정하자. 즉 C:\ProgramData\Adobe 폴더의 정션을 L:\shit damn motherfucker\ProgramData\Adobe에 만드는 것이다.

위 배치파일을 보내기 폴더에 저장했다고 치고, 파일을 메모장 같은 걸로 열고 셋째 줄을 수정한다.

원하는 폴더로 수정하되 따옴표나 슬래시는 뺄 것원하는 폴더로 수정하되 따옴표나 끝에 슬래시는 뺄 것

이때 폴더명 앞뒤에 따옴표(") 또는 맨 끝에 슬래시(\)를 붙이지 말아야 한다. 배치파일 안에 주석으로 써놓았으니 제발 좀 읽길. 이제 파일을 저장하고 탐색기에서 C:\ProgramData\Adobe 폴더를 우클릭하고 보내기>makeJP.bat를 선택한다. 그럼 다음과 같은 콘솔 창이 뜰 거다.

잘 읽어보고 진행하길잘 읽어보고 진행하길


원본 폴더와 대상 폴더를 확인하고 맞으면 아무 키나 누르고, 만약 틀렸다면 ctrl + c를 눌러서 중단하라. 마지막 경고다. 아무 키나 눌러서 진행할 경우, 배치파일은 원본 폴더 파일을 대상 폴더로 복사한다. 복사가 끝나면 원본 폴더 파일을 지우고 대상 폴더에 대한 링크를 걸게 된다. *Done!이 뜨면 성공적으로 완료.


보통은 중간에 액세스가 거부되었습니다, 지정된 파일을 찾을 수 없습니다, 디렉터리가 비어 있지 않습니다, 파일이 이미 있으므로 만들 수 없습니다 등의 오류가 뜰 텐데, 마지막에 *Done!이 뜨면 성공적으로 완료된 거다.


*주의(11-10-26 추가): 하지만 *Done!이 뜨지 않고 '액세스가 거부되었습니다'와 '파일이 이미 있으므로 만들 수 없습니다'가 표시된 후 *Check if 폴더명 is shared! If not, press any key to retry.라고 나올 경우는, 옮기려는 폴더가 공유 혹은 사용되고 있는 폴더인지 확인해야 한다. 아니라면 아무 키나 눌러서 다시 시도할 수 있다. 만약 몇 번 더 시도해도 다음으로 넘어가지 않는다면 십중팔구 공유 혹은 사용 중인 폴더이므로 폴더를 지울 수 없다. 이때는 ctrl + c로 종료하고 원본 폴더를 사용 중인 프로세스를 종료하고 다시 시도해야 한다. 어도비 관련 프로세스라든가 스팀, 오리진 클라이언트 같은 것들 말이다. 그런 경우가 아니라도 윈도우에서 사용하는 폴더는 이동할 수 없다. 어쨌거나 *Check if ...가 뜬 다음 배치파일을 강제종료했다면, 대상 폴더는 이미 생성이 된 상태이고(링크만 안 걸렸을 뿐) 원본 폴더에서도 일부 파일이 대상 폴더로 이미 이동되었을 수 있으므로, 복사된 대상 폴더를 다시 원본 폴더로 이동해야 한다(수동으로-_-).


*마지막 주의사항이다. C:\ProgramData 전체를 옮기면 안 된다. C:\Users\Administrator 전체도 마찬가지다. 심지어 C:\Program Files (x86)\Common Files 전체도 안 된다. 이들 폴더에는 윈도우 상주 파일이 있기 때문에 옮겨서는 안 되거나 아예 옮길 수 없다.


어도비 프로그램을 사용 중이라면, 기본적으로 다음 폴더들은 옮기길 추천한다(물론 하드가 남아돈다면 안 옮겨도 무방...하지만 그렇다면 아예 이 글을 읽고 있을 이유가 없겠지).


C:\Program Files\Common Files\Adobe

C:\Program Files (x86)\Adobe  

C:\Program Files (x86)\Common Files\Adobe

C:\ProgramData\Adobe


그 외 윈도우 중 용량 쥰내 차지하는 다음 두 폴더도 옮기면 좋다. 단, 옮겨야 하는 이유는 알고 옮기길 바란다. 웹 찾아보면 다 나온다.


C:\Windows\installer

C:\Windows\SoftwareDistribution


나머지는 본인이 사용하는 프로그램에 따라 C:에 있을 이유가 없는 것들을 옮겨주면 된다. 내 경우 이렇게 해서 C:에서 3.4기가의 용량을 절약했다.


물론 이렇게 복잡한 방법을 사용할 필요 없이, 내 문서 같은 사용자 폴더는 윈도우 자체에 폴더를 옮기는 방법이 있다. 스팀이나 오리진은 처음부터 C:가 아닌 곳에 깔면 된다. 프로그램은 웬만하면 포터블 버전을 쓰면 된다. 이 방법을 사용하는 건 그렇게 할 수 없는 빌어먹을 녀석들에 한하길 권한다(분명히 그런 프로그램들이 있다. 나는 안 쓰니 모르겠지만, 아이튠즈도 그런 것 같고, 일부 게임 중에도 있다).


다음은 배치파일 소스 전체다. 이거 만들면서 배치파일에서도 스트링 처리가 가능하다는 걸 처음 알았다;



'응용프로그램' 카테고리의 다른 글

오페라 마이그레이션  (1) 2011.12.13
QCP 및 QCQ 파일 재생 불가  (2) 2011.11.02
dosbox에서의 배치 파일  (0) 2011.07.07
워드 문서 비교 및 병합  (0) 2011.07.07
MS 오피스 파일을 PDF로 변환하기  (1) 2011.02.25
Posted by 필유