NT에서   배치파일이나 EXE 파일을 일정 시간마다 실행시키는 서비스를 사용하는 방
법입니다..
 
이   서비스를  이용하여 특정일, 또는 특정요일의 특정 시간에 어떤 작업을 해야할
경우 스케쥴링을 할 수 있습니다..
 
 
일단 서비스중에 schedule 이라는 서비스가 기동되어 있어야 합니다.. NT  설치시에
는 설치는 되는데 시작옵션이 수동으로 되어 있어 서비스 기동이 되어 있지 않은 상
태입니다..
 
제어판에서  서비스를 더블클릭하면 대화상자가 나타납니다.. 여기서 시작옵션 버튼
을 눌러 나타나는 대화상자에서 자동으로 변경을 하고, 계정지정을 선택합니다..
사용할  계정을 입력하고 패스워드를 입력합니다.. administrator로 했는데 다른 계
정으로 해도 상관은 없을 듯 합니다..
 
그리고 계정지정을 하지 않고 시스템계정을 사용해도 되는지는 테스트를 안해봤습니
다.. MSDN에 계정지정으로 하라고 해서리..
(음.. 실험정신이 약한 미친병아리.. 자세가 덜 됐군..)
 
 
자.. 이제 at 명령을 사용할 수 있게 되었습니다..
 
명령 프롬프트를 열어서 at 명령을 쳐봅니다..
 
현재   스케쥴링된  명령들의 리스트가 나타나는데 처음 시작했으니 당연, 아무것도
안 나타나겠죠..

 
at /?를 쳐봅시다.. 어떻게 사용하는지 나타납니다..
 
NT  리소스킷을 보면 winat 라는 프로그램이 제공되어 GUI 환경에서 사용할 수 있습
니다.. 뭐 GUI에서야 별로 설명할 내용도 없을 것이고..
 
개인적으론  명령행 유틸리티들을 좋아해서리.. 계속 이 프로그램 사용법에 대한 야
그를 늘어놓아 보도록 하죠.. (아.. 도스 시절이 그립다..)
 
다음은 at /? 를 타이핑 했을때 나타나는 내용입니다..

 
  At 명령어는 명령어와 프로그램이 지정된 시간과 날짜에 실행되도록
  스케줄합니다. At 명령어를 사용하려면 스케줄 서비스를 실행하고 있어야
  합니다.
                                                             
  AT [\\컴퓨터이름] [ [id] [/DELETE] | /DELETE [/YES]]                   
  AT [\\컴퓨터이름] 시간 [/INTERACTIVE]
       [ /EVERY:날짜[,...] | /NEXT:날짜[,...]] "명령어"
 
  \\컴퓨터이름       원격 시스템을 지정합니다. 이 매개 변수가 생략되면,
                      로컬 컴퓨터에서 스케줄됩니다.            
  id                 스케줄된 명령어에 지정된 식별 번호입니다.             
  /delete            스케줄된 명령어를 취소합니다. id가 생략되면,
                      컴퓨터에 스케줄되어 있는 모든 명령어를 취소합니다.
  /yes               스케줄된 모든 작업을 취소할 때, 더 이상 확인하지
                      않으려면 yes로 지정합니다.
  시간               명령어가 실행될 시간을 지정합니다.
  /interactive       작업이 실행될 때 로그온한 사용자의 데스크톱과  
                      대화할 수 있도록 합니다.
  /every:날짜[,...]  매주 또는 매달 지정된 날짜에 명령어를 실행합니다.
                      날짜를 생략하면, 현재 날짜로 가정합니다.
  /next:날짜[,...]   돌아오는 지정 요일에(예들 들어, 다음 목요일),
                      지정된 명령어를 실행합니다.
                      날짜를 생략하면, 현재 날짜로 가정합니다.
  "명령어"           실행될 Windows NT 명령어나 일괄 프로그램입니다.
 
 
자.. 그럼 작업을 추가해 봅시다..
 
  at \\goliath 16:10 /interactive /every:M,T,W,Th,F,S,Su d:test.exe
 
 
요렇게 입력한 후 at 를 때려보면 아래와 같이 나옵니다..
 
     상태 ID   날짜                     시간         명령줄
  ------------------------------------------------------------------------
          2   매 월요일 화요일...오후 4:10     D:TEST.EXE
 
 
이 내용은 레지스트리의
 
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
 
에 저장됩니다..
 
 
하지만   레지스트리를  지워도 서비스가 기동중에는 at 명령을 쳤을때 그대로 작업
리스트가 나타납니다..
아마   서비스를  재기동 시키면 다시 레지스트리를 읽어오니까 모두 없어지지 않을
까 합니다.. 역시 이짓은 안해봤으니 장담 못합니다..
 
 
/interactive  옵션을 사용하지 않으면 윈도우를 갖는 프로그램도 윈도우 없이 실행
이 되어 버립니다.. 제가 보기엔 실행이 안되는거 같습니다..
 
 
다음은 실행된 예입니다..

 

원본 http://madchick.com/Default.asp?Page=2&SubPage=12&3thPage=1
Posted by 장안동베짱e :