현재 스크립트의 이름 가져오기<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />스크립트로 생성된 보고서에 스크립트 이름을 추가하는 방법을 찾으려고 합니다. 이는 어느 시점에서 스크립트 이름의 텍스트 문자열을 가져와야 함을 의미합니다. 스크립트 파일 디렉터리는 다음과 같습니다.
sDir=기본 디렉터리 가져오기();
해당 디렉토리 내의 파일은 다음과 같습니다.
lFiles=디렉터리의 파일(sDir);
하지만 현재 실행 중인 스크립트의 파일 이름만 가져오는 방법을 찾지 못했습니다. 문제는 나중에 저장된 보고서를 찾을 때 해당 보고서를 생성하기 위해 어떤 스크립트가 실행되었는지 정확히 알고 싶다는 것입니다.
도와주세요.
Re: 현재 스크립트의 이름을 가져옵니다.감사해요 @바이오데이터41
스크립트에서 이것을 사용하여 자체 filePath를 참조하는 한 파일을 자체적으로 실행하거나 include()를 사용하여 다른 스크립트에서 스크립트를 실행할 때 작동합니다.
scriptFilePath = Include File List()[1];
Re: 현재 스크립트의 이름을 가져옵니다.저는 JMP를 처음 접했기 때문에 이 함수가 얼마나 오랫동안 사용되었는지 잘 모르겠습니다. 비슷한 문제를 해결하려고 시도하던 중에 이 함수를 직접 찾았지만 "Include File List()" 함수가 다음 목록을 반환하는 것 같습니다. 실행 스크립트의 컨텍스트에 있는 파일을 엽니다. (그런데 이 함수에 대한 설명은 스크립팅 인덱스나 온라인 리소스에 있는 대부분의 함수/메소드/메시지의 경우처럼 일종의 정보 제공용일 뿐입니다.)
스크립트에 의해 다른 항목이 열리기 전에 이 함수가 스크립트 상단에서 실행되면 스크립트 파일 경로와 스크립트 파일 이름이 해당 지점에서 반환되는 유일한 경로이므로 추출될 수 있는 것 같습니다.
JMP에서 다른 파일을 연 상태로 테스트하고 Windows 탐색기에서 스크립트를 두 번 클릭하여 스크립트를 실행했을 때(스크립트 상단에 "//!"를 포함하여 스크립트 편집기 창을 열지 않고 열린 상태에서 실행되도록 설정된 스크립트 사용) ), 해당 스크립트의 경로만 반환됩니다. 열려 있는 다른 파일은 반환되지 않습니다.
Re: 현재 스크립트의 이름을 가져옵니다.그것이 바로 내가 한 일이었습니다. 감사합니다
Re: 현재 스크립트의 이름을 가져옵니다.질문을 게시하기 전에 거의 동일한 스크립트("For" 루프)를 생각해 냈습니다. 문제는 그것이 반환하는 스크립트가 현재 스크립트인지 알 수 없다는 것입니다. 예를 들어 동일한 스크립트가 동일한 폴더의 다른 버전으로 저장되면 .jsl 파일 목록이 표시됩니다. 비슷한 이름의 스크립트가 동일한 위치에 얼마나 많이 저장되어 있는지에 관계없이 실행 중인 현재 스크립트의 이름을 가져와야 합니다.
Re: 현재 스크립트의 이름을 가져옵니다.스크립트가 스크립트 창에서 실행되는 경우 아래 예의 직접 접근 방식을 통해 파일 이름이 제공됩니다.
scr_name = Current Window() << get window title;
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("My Report", Bivariate(Y(:weight), X(:height)), Text Box(scr_name));
Re: 현재 스크립트의 이름을 가져옵니다.그렇게 할 수 있는 방법이 있는지 모르겠습니다.각 스크립트의 시작 부분에 변수를 설정했습니다.조금 지루하지만 디버깅에 도움이 됩니다.
p이름 = "내 스크립트.JSL" ;
Re: 현재 스크립트의 이름을 가져옵니다.다음을 사용해 보세요:
포함 (l파일 , "스크립트.jsl" ) ;
나는 이것을 ".jmp"를 사용하여 JMP 테이블을 찾는 데 사용했는데 그것은 나에게 효과적이었습니다.
또는 질문이 잘못된 경우 디렉터리에 있는 여러 파일을 반복하여 다음과 같은 스크립트 파일 이름을 얻을 수 있는 다른 방법이 있습니다.
을 위한 ( N = 1 , N <= N개 품목 ( l파일 ) , N ++,
파일 =l 파일 [ N ] ;
만약에 (
로 끝나다 ( 파일 , ".jsl" ) ,/*원하는 일을 하세요*/;
부서지다();
);
);