Window cmd에서 idl 배치 실행

게시판 IDL Q&A Window cmd에서 idl 배치 실행

이 게시글은 2개 답변과 3명 참여가 있으며 마지막으로  Sangwoo에 의해 3 월, 2 주 전에 업데이트 됐습니다.

  • 글쓴이
  • #5209

    sjlee
    회원

    안녕하세요, 윈도우 cmd 창에서 IDL을 배치 실행하려고 하는데요,
    cmd에서 ‘idl -e 파일 이름’ 하면
    특정 하부 procesure에서 “Varialbe is undefinced:**”가 뜨고 멈춥니다.

    그냥 idl 프로그램을 열어서 실행하면 정상적으로 돌아가는데, 왜 cmd에서는 안되는걸까요?

  • #5211

    mwkim
    회원

    안녕하세요,

    관련 내용만 가지고는 정확하게 파악하기는 어렵지만

    경로상의 문제가 아닐까 하는 추측은 해봅니다.

    일단 저 프로시저에서 정의되지 않았다는 것이 변수인지 아니면 프로시저나 함수인지요?

    프로시저나 함수라면 cmd에서 수행될 때,

    컴파일되는 목록에 포함되어있는지 확인이 필요할 것 같습니다.

    컴파일 목록에 빠져있으면 해당 프로시저나 함수를 찾지 못해 발생하는 오류인데 많은 경우에 경로의 문제로 발생됩니다.

    만약 정의되지 않은 것이 변수라면, 커맨드 창에서 실행할 때만 값이 들어오지 않는 다는 것인데…

    이 부분은 해당 변수의 정의에 필요한 값을 확인해나가면서 찾아가는 방법밖에 없을 것 같습니다.
    (확인할 때는 HELP 명령어를 통해 확인하면 수월합니다.)

  • #5223

    Sangwoo
    회원

    에러 메시지에서 “정의되지 않았다는(undefined)” 대상이 하부 프로시저의 이름인지 아니면 그 프로시저에 전달되는 인수인지에 대한 확인을 먼저 해주셔야 문제점에 대한 더 정확한 진단이 가능할 것 같습니다. 예를 들어 하부 프로시저가 다음과 같이 사용되는 방식일 경우,

    my_calc, a, b

    정의되지 않은 것으로 지적되는 대상이 my_calc인지 아니면 a나 b인지에 대한 확인이 먼저 필요하다는 의미입니다. 그리고 cmd에서 커맨드 라인으로 실행하기 전에, 메인 프로시저 파일이 있는 디렉토리로 먼저 이동을 한 상태였는지도 궁금합니다. 커맨드 라인으로 실행할 경우에는 작업 디렉토리로 먼저 이동을 한 상태여야 합니다. IDLDE에서는 작업 디렉토리 또는 현재 디렉토리를 셋팅할 수 있는 기능이 DE 인터페이스에서 제공되지만, 커맨드 라인 환경에서는 그런 것이 없거든요. 이런 부분에 대한 확인도 한번 해보시길 바랍니다.

답변은 로그인 후 가능합니다.