배치파일 만들 때마다 고민하게 되는데, 

한 번 만들어 두었으니 샘플로 쓸만하지 않을까 싶다.





@echo off
:: 현재폴더 변수 지정 및 드라이브 폴더 변경
set curdir=%~dp0
set outputDir=%curdir%Output\
set bandizip="C:\Program Files\Bandizip\Bandizip.exe"
set innosetup="C:\Program Files (x86)\Inno Setup 5\ISCC.exe"
cd /d "%curdir%"

:: war 파일이 있는지 체크 후 여러가지가 있으면 order by desc 로 높은 파일 선택
for /f %%i in ('dir "%curdir%*.war" /b /o:n') do set targetWar=%%i
echo 현재 선택된 파일은 "%targetWar%" 입니다.

:: 배포할 버전정보 받기
set /p deployVersion=배포할 버전을 입력하세요:
set deployFile=NetClient6_PcOff_WebSetup_%deployVersion%

:: ROOT 라는 이름의 폴더에 압축 해제
echo 압축을 해제합니다.
RMDIR "%curdir%ROOT" /S /Q
%bandizip% x -o:"%curdir%ROOT" %targetWar%

:: 리눅스, 윈도우의 tomcat\webapp 폴더로 복사
robocopy /mir /DCOPY:T /R:1 /W:1 ".\ROOT" ".\linux\MyApp\tomcat9\webapps\ROOT"
robocopy /mir /DCOPY:T /R:1 /W:1 ".\ROOT" ".\win\origin\apache-tomcat-9.0.10-windows-x64\webapps\ROOT"

:: 리눅스는 반디집으로 압축
echo 반디집으로 리눅스용 tgz 파일을 생성합니다.
%bandizip% c "%outputDir%%deployFile%.tgz" "%curdir%linux"

:: 윈도우는 inno setup 으로 압축
echo innosetup을 사용하여 윈도우용 배포파일을 생성합니다.
%innosetup% /Qp /O"%outputDir%" /F"%deployFile%" ".\win\MyApp.iss" /DMyAppVersion=%deployVersion%

echo 모두 완료하였습니다.
echo "%outputDir%" 폴더를 확인해주세요.
pause



Posted by motolies
,