본문 바로가기

IT/Windows

윈도우 예약작업

제어판 > 예약된 작업

예약작업 추가로

 

찾아보기를 클릭하여 원하는 프로그램 지정

 

예제)

날짜별로 백업 폴더를 만들어서 파일 복사하는 스크립트

준비 날짜를 계산하는 vbs 스크립트와 cmd 2가지 파일이 필요하다.

(vbs 파일이 현재 날짜를 계산하여 출력하면 그 값을 받아 폴더명에 사용)

 

1.calc_date.vbs 파일

Dim cNowDate
Dim nInterval
Dim cEchoDate


cNowDate = Date


Rem nInterval 은 현재날짜에서 연산을 할 숫자 (더할거면 양수 뺄거면 음수)
nInterval = 0


Rem DateAdd 함수는 주어진 날짜에서 주어진 인터벌만큼 연산을 한다.
Rem 첫번째 인자는 연산을할 부분, m 은 월, d는 일
Rem http://msdn.microsoft.com/en-us/library/cb7z8yf9.aspx 참조.


cEchoDate = DateAdd("d",nInterval, cNowDate)


Rem 연산된 날짜를 콘솔에 출력후 종료
WScript.StdOut.Write cEchoDate

 

2. script.cmd 파일

@ECHO OFF
setlocal


rem 메인디렉토리 및 원본, 백업디렉토리 설정


rem %%i = 년도, %%j = 월 , %%k = 일
for /F "eol=; tokens=1,2,3* delims=-" %%i in ('cscript /nologo calc_date.vbs') do (
  set aDate=%%i%%j%%k
  set toPath=D:\erp_%%i%%j%%k
)


echo %aDate%
echo %toPath%


echo COPY Start!!
echo .


rem 옵션 /D 대상파일보다 새로운 원본파일만 복사
rem 옵션 /Y 이미 있는 대상 파일을 덮어쓸지 확인하기 위해 묻지 않는다
rem 옵션 /E 디렉터리와 하위 디렉터리를 복사
rem 옵션 /C 오류가 생겨도 복사를 계속한다.
rem 옵션 /F 파일을 비교하여 최신 데이터만 복사


xcopy Y:\복사해올경로\*.* %toPath%\ /D /Y /E /C /F


echo .
echo COPY Complete!!


endlocal