블로그에 올릴 수 있을 정도로만 대충 정리했으므로 가져가서 사용하실 분은 적당히 고쳐서 사용하시길..
# 동작 내용
FROMFOLDER 에서 파일을 TEMPFOLDER 로 복사하고, 이걸 TARGETFOLDER 로 오늘 날짜_시간.zip 파일 압축을 해서 복사해주는 배치파일
# 사용 방법
스크립트 안의 아래의 경로와 ID / PW 를 변경해서 실행하면 된다.
set TEMPFOLDER=C:\TEMP\
set FROMFOLDER=C:\CONTENTS
set TARGETFOLDER=C:\OUTPUT
set NETFOLDER=\\192.168.0.1\
set NETACCOUNT=아이디
set NETPASSWORD=비밀번호
:: 특정 폴더를 압축해서 시각 파일 이름으로 저장하기
@echo off
setlocal
:: 날짜 문자열을 년월일로 분해
set WEEK=%date:~0,1%
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
:: 시간 문자열을 시분초로 분리
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
echo. 현재 빌드 시간 확인, 이 시간을 파일명 뒤에 붙입니다. YYYYMMDD_HHMMSS 의 포맷으로 붙인다. 1자리수의 HOUR 는 0이 아니라 공백으로 오기 때문에 띄어쓰기가 없도록 0으로 매꿔준다.
set TIMETEMP=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%
set TIMERESULT=%TIMETEMP: =0%
echo. %TIMERESULT%
:: 머징용 임시 폴더 제작
echo. 작업을 준비하는 중
:: 임시 작업 폴더 설정
set TEMPFOLDER=C:\TEMP\
if exist %TEMPFOLDER% (
echo 임시 파일 폴더가 이미 작성되어 있습니다.
) else (
echo 임시 파일 폴더를 생성합니다..
MKDIR %TEMPFOLDER%
)
:: 파일 폴더에 복사해서 정리하기
set FROMFOLDER=C:\CONTENTS
set TARGETFOLDER=C:\OUTPUT
echo. 폴더 확인 중
if exist %FROMFOLDER% (
echo 원본 폴더가 있습니다.
if exist %TARGETFOLDER% (
echo 대상폴더가 이미 있습니다.
) else (
echo 대상폴더가 없어서 새로 만듭니다.
MKDIR %TARGETFOLDER%
)
) else (
echo 원본 폴더가 없습니다. 작업을 중지합니다.
goto ERROREND
)
pause
echo. 임시 경로로 파일 복사하는 중
Xcopy %FROMFOLDER% %TEMPFOLDER%
:: 출력될 파일 이름 설정 및 압축
echo. 임시 폴더로 부터 파일을 압축하는 중...
set OUTPUTFILENAME=%TIMERESULT%.zip
:: 반디집
"%programfiles%\Bandizip\Bandizip.exe" c -y %TARGETFOLDER%%OUTPUTFILENAME% %TEMPFOLDER%
:: 7집
::"%programfiles%\7-zip\7z.exe" a -y %TARGETFOLDER%%OUTPUTFILENAME% %TEMPFOLDER%
:: 네트워크 폴더에 복사
echo. 네트워크 폴더에 복사하는 중...
set NETFOLDER=\\192.168.0.1\
set NETACCOUNT=아이디
set NETPASSWORD=비밀번호
net use %NETFOLDER% NETPASSWORD /user:NETACCOUNT /persistent:no
copy %TARGETFOLDER%%OUTPUTFILENAME% %NETFOLDER%
if exist %NETFOLDER%%OUTPUTFILENAME% echo %OUTPUTFILENAME% 파일이 잘 복사된 것 같습니다.
echo. 네트워크 폴더 사용 목록을 제거 시도...
net use %NETFOLDER% /delete
:: 임시 폴더 삭제
echo. 임시 파일 삭제 중...
rmdir /s /q %TEMPFOLDER%
echo. 작업 완료! 오케이~
goto QUIT
:ERROREND
echo. 오류가 발생해서 작업을 종료합니다.
goto QUIT
:QUIT
endlocal
귀찮은 일은 컴퓨터에게 맡깁시다.
댓글 없음:
댓글 쓰기