Explorer에서 더블클릭하면 되는데 배치 파일로 실행하면 안 되는 이유
Why a program doesn't work when run from a batch file, but works when clicked
Raymond Chen이 한 고객의 사례를 통해 흔한 함정을 짚는다. Explorer에서 파일을 더블클릭하면 Explorer가 현재 디렉터리를 그 파일이 있는 폴더로 맞춰 주지만, 배치 파일은 전체 경로로 프로그램을 실행할 뿐 현재 디렉터리를 바꾸지 않는다. 그래서 현재 디렉터리 기준으로 보조 파일을 찾는 프로그램은 오류를 낸다. pushd와 popd로 디렉터리를 바꾸면 해결된다.
Explorer에서 파일을 더블클릭하면 Explorer는 더블클릭한 대상이 들어 있는 디렉터리로 프로그램의 현재 디렉터리를 설정한다.