2016-09-04 5 views
0

jar 서버 파일을 실행하기위한 간단한 배치 파일을 생성했습니다.폴더에있는 jar 파일의 최신 버전을 검색하고 배치 파일에서 실행하십시오.

cd /D %~dp0 
java -jar server-0.17.0.jar 

문제는 모든 동안 따라서 스크립트를 업데이트하는 서버의 파일 중 하나 올바른 버전을 실행하거나 실행하는 데 실패 실패는 두 줄의 코드입니다.

내 요청은 최근에 서버의 jar 파일을 숫자 나 날짜로 동적으로 발표 된 최신 파일로 교체하겠습니까?

dir *.jar 

을하지만 어떻게 katest 버전 명령을 연결하는 아무 생각이 :

나는 내가 사용 가능한 jar 파일을 검색 할 수 있습니다 만 알고 있어요. 감사합니다

+0

이렇게하면 시도해 볼 수 있습니다. 이 dir (star-char) 서버 (star-char) .jar/O : D> server.jar.txt와 같은 파일에 파일 목록을 만든 다음 날짜순으로 정렬 된 서버 파일 목록을 가지고 있습니다. 파일을 읽고 첫 번째 줄만 가져 오면, 이것은 최신 server.jar이어야합니다. 내 모바일 장치에이 글을 쓰고 있는데 도움이 되었으면 좋겠다. ... –

+0

.jar 파일의 새 버전을 설치 한 사람은 누구나 스크립트를 업데이트해야한다. 또는 버전이없는 이름으로 설치해야합니다 (예 : 'server.jar' 또는'server-latest.jar'. 버전이 지정된 파일을 사용하여 설치하는 대신에 추가 작업을 수행하든 추가 작업을 수행하든 관계 없습니다. 추가 기능이 있으면 버전이없는 이름을 사본 대신 소프트 링크로 만들 수 있습니다. 이는 Linux에서 수행 할 가능성이 매우 높습니다. – Andreas

답변

1

이 같은 스크립트를 시도 할 수 있습니다 :이 스크립트에서

@echo off 
for /f "delims=" %%x in ('dir /od /b server*.jar') do set latestjar=%%x 
java -jar %latestjar% 

두 번째 라인은 그 서버 *의 .jar 템플릿을 준수 이름 마지막으로 생성 된 파일에 latestjar을 설정합니다.

+0

그 마법의 선을 설명 할 수 있습니까? – wbadry

+0

dir/od/b server * .jar :이 명령은 현재 디렉터리의 파일을 제목 (/ b)없이 날짜 (/ od)별로 정렬 된 순서로 나열합니다. **/f **는 dir 명령의 출력을 통해 반복하고 파일 이름 (dir의 출력 및 자리 표시 자 %% x에서 보유 됨)을 ** latestjar **에 할당합니다. 마지막으로 나열된 파일은 루프 완료 후 최신 파일이 될 것이므로 latestjar는 최신 파일 이름을 값으로가집니다. – msaint

관련 문제