레이블이 Batch인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Batch인 게시물을 표시합니다. 모든 게시물 표시

2018년 1월 9일 화요일

오늘 시각으로 파일 압축하여 네트워크 경로에 복사하는 배치파일 예제

말이 좋아서 예제지 내가 필요해서 하나 만든 것..
블로그에 올릴 수 있을 정도로만 대충 정리했으므로 가져가서 사용하실 분은 적당히 고쳐서 사용하시길..

# 동작 내용
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
귀찮은 일은 컴퓨터에게 맡깁시다.

2018년 1월 4일 목요일

배치파일에 네트워크 엑세스 추가하기

아래와 같이 사용하면 된다.

net use \\네트워크경로 패스워드 /user:아이디 /persistent:no

persistent 는 네트워크 증명을 기록할 것인지 여부이다.

아래와 같은 예시 상황을 작성해본다.
네트워크 경로가 192.168.0.1\exam
아이디 Kpaper
패스워드 KpaperPassword

net use \\192.168.0.1\exam KpaperPassword /user:Kpaper /persistent:no

삭제 하고 싶은 경우에는 아래와 같다.

net use \\네트워크경로 /delete 

위의 예제라면

net use \\192.168.0.1\exam /delete

네트워크 파일 복사 등 귀찮은 작업이 반복될 경우 잘 활용해보자.