python 버 전의 windows 계획 작업 도구

계획 작업 도구-windows
계획 작업 도 구 는 자신 이 설정 한 구체 적 인 시간,주파수,명령 등 속성 에 따라 실행 할 계획 을 규정 합 니 다.
효과 도

코드

# -*- coding: utf-8 -*-

"""
Module implementing App.
"""

from PyQt4.QtGui import QMainWindow
from PyQt4.QtCore import pyqtSignature
import time,os
import QtUtil
import shutil
import time

from v.Ui_App import Ui_MainWindow

class App(QMainWindow, Ui_MainWindow):
  """
  Class documentation goes here.
  """
  def __init__(self, parent = None):
    """
    Constructor
    """
    QMainWindow.__init__(self, parent)
    self.setupUi(self)
    
    #   'res/command'   
    if os.path.exists('res/command'):
      pass
    else:
      os.mkdir('res/command')
    
#     self.startDate.textFromDateTime()
  
  
  @pyqtSignature("")
  def on_run_btn_clicked(self):
    """
                .
    """   
    
    #          
    cmd = self.taskRun.toPlainText()
    #   'res/command/01.txt'  
    if not os.path.exists('res/command/01.txt'):
      m = open('res/command/01.txt','w')
      m.close()
    p = str(self.modifier.text())
    #         
    if self.endDate.text() <= self.startDate.text():
      QtUtil.showOkDialog(self, u'    ', u'           ')
    
    elif not p.isdigit():
      QtUtil.showOkDialog(self, u'    ', u'         ')
      
    else:
      #          ,     
      if self.taskName.text()=='' or self.modifier.text()=='' or cmd=='':
        QtUtil.showOkDialog(self, u'    ', u'      ')
      else:
        #   'res/command'          filename
        for root, dirs, files in os.walk('res/command'):
          for file in files:
            filename = open('res/filename.txt','a')
            filename.write('/')
  #           filename.truncate()
            filename.write(str(file))
            filename.close()
            filename1 = open('res/filename.txt')
            fn = filename1.read()
            filename1.close()
        print fn
        print '/' + str(self.taskName.text()) + '.cmd'
        #       filename    ,         
        if '/' + str(self.taskName.text()) + '.cmd' in fn:
          QtUtil.showOkDialog(self, u'    ', u'     ')
           
        else:
          
          #     
          if self.schedule.currentText() == 'monthly':
            print 'monthly'
            run = 'schtasks /create /tn '+ self.taskName.text() + ' /tr '+os.getcwd()+'/res/command/'+self.taskName.text()+'.bat /sc ' + self.schedule.currentText() + ' /d ' +self.modifier.text() + ' /m ' + self.month.currentText() + ' /st ' + self.timeEdit.text() + ' /sd ' + self.startDate.text() + ' /ed ' + self.endDate.text()
          elif self.schedule.currentText() == 'once':
            print 'once'
            run = 'schtasks /create /tn '+ self.taskName.text() + ' /tr '+os.getcwd()+'/res/command/'+self.taskName.text()+'.bat /sc ' + self.schedule.currentText() + ' /st ' + self.timeEdit.text() + ' /sd ' + self.startDate.text() 
            if self.startDate.text() < time.strftime('%Y/%m/%d') or (self.timeEdit.text() <= time.strftime('%H:%M:%S') and self.startDate.text() == time.strftime('%Y/%m/%d')) :
              QtUtil.showOkDialog(self, u'    ', u'          ')
              return
          else: 
            print 'not monthly'
            run = 'schtasks /create /tn '+ self.taskName.text() + ' /tr '+os.getcwd()+'/res/command/'+self.taskName.text()+'.bat /sc ' + self.schedule.currentText() + ' /mo ' +self.modifier.text() + ' /st ' + self.timeEdit.text() + ' /sd ' + self.startDate.text() + ' /ed ' + self.endDate.text()
          
          #       
          fd = open('res/command/'+self.taskName.text()+'.bat','w')
          fd.write(cmd)
          fd.close()
          
          #       
          f = open('res/command/'+self.taskName.text()+'.cmd','w')
          f.write(run)
          f.close()
          #     
          os.system(os.getcwd()+'\\res\command\\'+str(self.taskName.text())+'.cmd')
          QtUtil.showOkDialog(self, u'    ', u'    ')
  @pyqtSignature("")
  def on_delete_btn_clicked(self):
    """
                .
    """
    #           
    x=os.system('schtasks /delete /tn '+str(self.taskDelete.text()).decode('gbk')+' /f')
    #           ,       
    if x==1:
      QtUtil.showOkDialog(self, u'    ', u'            ')
    else:
      os.remove('res/filename.txt')
      
      
      if os.path.exists('res/command/'+self.taskDelete.text()+'.cmd'):
        os.remove('res/command/'+str(self.taskDelete.text())+'.bat')
        os.remove('res/command/'+str(self.taskDelete.text())+'.cmd')
        
      #   'res/command'          filename
      for root, dirs, files in os.walk('res/command'):
        for file in files:
          filename = open('res/filename.txt','a')
          filename.write('/')
#           filename.truncate()
          filename.write(str(file))
          filename.close()
          filename1 = open('res/filename.txt')
          fn = filename1.read()
          filename1.close()
      #     ,            
      QtUtil.showOkDialog(self, u'    ', u'    ') 
      
  @pyqtSignature("")
  def on_query_btn_clicked(self):
    """
                .
    """
    #    936   437     ,    
    os.system('chcp 437')
    #     
    os.system('schtasks /query')
    #     log         log  
    if os.path.exists('res/log.txt'):
      os.remove('res/log.txt')
    
    #   'res/command'     ,          log   
    for root, dirs, files in os.walk('res/command'):
      for file in files:
        dir = str(root)+'/'+str(file)
        f = open(dir,'r')
        scripts = f.read()
        new_path_filename = 'res/log.txt'
        
        f = open(new_path_filename, 'a')
        f.write(scripts) 
        f.write('
') f.close() # log if os.path.exists('res/log.txt'): fd=open('res/log.txt') info = fd.read() fd.close() # log self.taskQuery.setText(str(info)) else: QtUtil.showOkDialog(self, u' ', u' ') @pyqtSignature("") def on_delall_btn_clicked(self): """ . """ os.system('schtasks /delete /tn * /f') if os.path.exists('res/log.txt'): os.remove('res/log.txt') if os.path.exists('res/filename.txt'): os.remove('res/filename.txt') shutil.rmtree('res/command') os.mkdir('res/command') QtUtil.showOkDialog(self, u' ', u' ')
'퀘 스 트 이름'은 퀘 스 트 의 이름,계획 유형 선택 시간,주파수 작성 횟수 를 기입 합 니 다.계획 유형 에서 monthly 를 제외 한 다른 유형 은 모두 빈 도 를 기입 합 니 다.monthly 시 날짜 에 날짜 번 호 를 기입 합 니 다.월 도 monthly 를 선택 할 때 만 선택해 야 합 니 다.다른 시 기 는 선택 하지 않 아 도 됩 니 다.월 중*일 은 임 의 월 에 물 어보 고 그 다음 에 시작 시간,시작 날짜,종료 날짜,종료 날짜 가 시작 날짜 보다 크 고 마지막 으로 실행 할 명령 을 작성 하면 작업 이 성공 합 니 다.퀘 스 트 를 만 든 후 수시로 퀘 스 트 를 조회 할 수 있 습 니 다.퀘 스 트 를 조회 하면 됩 니 다.퀘 스 트 를 삭제 하려 면 삭제 할 퀘 스 트 이름 을 입력 하고 퀘 스 트 를 삭제 하려 면 클릭 하면 됩 니 다.퀘 스 트 를 삭제 하면 모든 퀘 스 트 를 삭제 할 수 있 습 니 다.
본 사이트 의 글 은 아기 버스 SD.Team 오리지널 입 니 다.리 트 윗 은 반드시 명확 한 곳 에 표시 해 야 합 니 다.(작성 자 공식 사이트:아기 버스)

좋은 웹페이지 즐겨찾기