jsl - 특정 명명 규칙으로 가장 최근의 파일을 여는 방법?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕 모두,
특정 명명 규칙이 포함 된 디렉토리에서 최신 파일을 열려면 jsl을 스크립팅하려면 어떻게합니까? 디렉토리에 최신 파일을 열 수있는 다음 코드가 있습니다.
(
OpenNewestFile = 디렉토리의 파일 ( "C : \ users \ me \ MyDocuments \");
{t, p} = {0,1};
for (i = 1, i <= n 개 항목 (OpenNewestFile), i ++,
ti = 최종 수정 날짜 ( "C : \ users \ me \ MyDocuments \"|| OpenNewestFile );
만약 (ti> t, t + ti; p = i));
dt1 = 열기 ( "C : \ users \ me \ MyDocuments \"|| OpenNewestFile
)
);
하루에 한 번 새로운 파일이 "FD_History_2016_08_27_17_36.csv"와 같은 이름으로 디렉토리에 기록됩니다.
이 스크립트를 수정하여 가장 최근의 "FD_History_"파일을 찾고 디렉토리의 다른 파일을 무시하면서 열 수 있습니까?
미리 감사드립니다.
제목 : Re : jsl - 특정 명명 규칙으로 가장 최근의 파일을 여는 방법?이 예제에서는 regex를 사용하여 이름이 .jmp로 끝나는 지 ($가 줄 끝과 일치하는지) 문자 a로 시작하는지 (^는 줄의 시작과 일치하는지) 확인합니다. 일치하지 않으면 Regex가 누락 된 값을 반환합니다. RemoveFrom 함수는 잘못된 항목을 목록에서 삭제합니다. for 루프는 뒤로 이동하여 삭제 된 항목은 아직 검사되지 않은 목록의 부분을 변경하지 않습니다. (항목이 삭제되면 후속 항목의 색인이 변경됩니다.)
NULL은 정규 표현식에 일치하는 텍스트를 대체하지 않도록 지시합니다. IGNORECASE는 Jmp와 jmp가 일치해야한다고 regex에게 알려줍니다.
x = filesindirectory ( "$ desktop");
for (i = nitems (x), i> = 1, i--,
if (ismissing (regex (x , ".Jmp $ | ^ a" , NULL, IGNORECASE)), removefrom (x, i))
);
쇼 (x);
x = { "animated.gif", "stories.jmp", "제목 없음 3.jmp"};
이 루프에 마지막 수정 날짜를 만들거나이 루프 다음에 별도의 루프에 보관할 수 있습니다.
Re: jsl - 특정 명명 규칙으로 가장 최근 파일을 여는 방법?안녕,
비슷한 문제가 있었는데 이 경우에는 폴더 이름이 주마다 변경됩니다.
폴더 구조는 다음과 같습니다.
\\themainfolder\ 202503 \PPT_ 12345 \subfolders\indicators.xlsx.
메인 폴더에는 3개 또는 4개의 "YYYYWW" 하위 폴더가 포함되어 있습니다(예: 202503, 202504, 202505). PPT_12345 폴더와 관련된 번호는 매주 무작위로 지정됩니다.
모든 YYYYWW 하위 폴더 {"202512", "202513", "202514"} 목록을 얻을 수 있었지만, 가장 최신 폴더(최대 개수)인 이 경우 "202514"를 선택해야 했습니다.
그런 다음 PPT 폴더만 선택해야 합니다(다른 하위 폴더는 있지만 "PPT_..."라는 폴더는 하나만 있습니다).
여기서 도와주실 수 있나요?
감사합니다
Re: jsl - 특정 명명 규칙으로 가장 최근 파일을 여는 방법?allfiles = Files In Directory( "c:/" );
show(N Items( allfiles )); // 15 or so
dirlist = Filter Each( {f}, allfiles, Is Directory( "c:/" || f ) );
show(N Items( dirlist )); // 12 or so
sorted = Reverse( Sort List( dirlist ) ); // biggest first
filtered = Filter Each( {f}, sorted, Starts With( f, "Prog" ) );
// {"ProgramData", "Program Files (x86)", "Program Files"}
편집: 경로를 앞에 추가하세요
더 보기: 위의 JMP 16 결과. 최신 JMP 버전은 c:/ -- 보고 싶지 않은 파일 시스템 객체를 사전 필터링하는 데 더 나은 성능을 보일 수 있습니다. 하지만 아이디어는 동일합니다. JSL 함수를 사용하여 원하는 것을 유지하고 나머지는 필터링합니다. 역순 정렬은 날짜를 1위에 두어야 합니다.
Re: jsl - 특정 명명 규칙으로 최신 파일을 여는 방법?크레이그, 고마워요. 답변이 늦어서 죄송합니다. 잘 작동하고 있어요. 다만 아쉬운 점은 폴더에 하위 폴더가 많고, Files In Directory 기능을 실행하는 데 시간이 오래 걸린다는 점입니다. 어쨌든 도와주셔서 감사합니다.