KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Stop searching forever. Happiness is unattainable.
FrontPage › FontCacheUpdateError
필자는 Windows Vista 64 bit를 쓰고 있습니다. ko.TeX Live 2009를 설치한 후에 Font Cache Update를 하지 않고, 간단한 문서를 만들었는데, 잘 만들어졌었습니다. 그 다음날 Font Cache Update를 실행 시켰는데, 너무 간단하게 끝나는 것 같아서 command prompt 창을 열어서 fontcache.bat을 실행시키니까 에러 메시지가 나오면서 바로 종료되었습니다. 제 환경변수는 %ProgramFiles(x86)% 는

C:\Program Files (x86)

%PROGRAMFILES% 는

C:\Program Files

로 되어 있었습니다.

이것들의 공백이 들어 있는 것을 잘 인식하지 못하는 것 같아서 1회 고쳤고, 그 이후에는 batch file의

rem Adobe Reader 8.0 or 9.0 이라는 부분에서 오류가 나길래 살펴 보니, batch file의 변수 %MyProgFiles%의 값이

C:\Program Files (x86

이라고만 되어 있어서 (닫는 괄호가 없음에 주의) 2차 수정을 하였습니다.

%MyProgFiles% 변수의 값 할당과정에서 윈도의 cmd의 batch 파일의 if 문장의 블록 역할을 하도록 사용된 괄호와 64bit 윈도에 존재하는 %ProgramFiles(x86)% 이름의 변수의 값인 문자열에 값으로 있는 괄호가 서로 혼동되어 작동해서 64bit 윈도(7도 그런지는 확인 못했습니다)에서는 이렇게 오작동하는 것으로 보입니다.

어떤 환경 변수 값 문자열에 괄호가 들어가 있고, 이것이 if 문장의 괄호 내에서 사용될 때에는 변수가 그 값인 문자열로 먼저 바꿔치기되고, 그 문자열의 일부분에 있는 닫는 괄호가 if 문장의 블록인 여는 괄호에 match 되면서 오작동하는 명령을 만들어내게 되는 것 같습니다. 이것은 32bit 윈도였다고 해도 일반적으로 일어날 수 있는 문제였던 것 같습니다.


해결책은 문자열 값으로 괄호가 들어간 변수를 따옴표로 감싸면 if 문장의 블록 역할을 하도록 하는 괄호로 해석되지 않게 만들어지는 것 같습니다. (윈도 batch 파일 도움말은 참 알쏭달쏭하게 if문장의 괄호를 설명해서 잘 모르겠습니다.)

수정한 파일을 올립니다. 오른쪽 아래의 올린 파일 연결을 보십시오. Debug를 위해서 @echo off를 주석처리했고, 변경된 줄 위에는 원본 줄을 REM WILLIAM 으로 주석처리해 놓았습니다. 나중에 업데이트해 주실 때에는 이런 부분들을 정리해 주시기 바랍니다. 실행 시켜 보면서 REM WILLIAM 으로 주석처리된 부분 근처를 잘 살펴 보십시오.

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-08-04 18:48:19
Processing time 0.0583 sec