最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

python版本的仿windows計(jì)劃任務(wù)工具_(dá)python

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:12:23
文檔

python版本的仿windows計(jì)劃任務(wù)工具_(dá)python

python版本的仿windows計(jì)劃任務(wù)工具_(dá)python:這篇文章主要介紹了python版本的仿windows計(jì)劃任務(wù)工具,計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行的計(jì)劃,當(dāng)然功能不是很全大家可以補(bǔ)充計(jì)劃任務(wù)工具-windows計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行
推薦度:
導(dǎo)讀python版本的仿windows計(jì)劃任務(wù)工具_(dá)python:這篇文章主要介紹了python版本的仿windows計(jì)劃任務(wù)工具,計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行的計(jì)劃,當(dāng)然功能不是很全大家可以補(bǔ)充計(jì)劃任務(wù)工具-windows計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行
這篇文章主要介紹了python版本的仿windows計(jì)劃任務(wù)工具,計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行的計(jì)劃,當(dāng)然功能不是很全大家可以補(bǔ)充

計(jì)劃任務(wù)工具-windows

計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行的計(jì)劃。

效果圖

代碼

# -*- 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)
 
 # 創(chuàng)建'res/command'文件夾
 if os.path.exists('res/command'):
 pass
 else:
 os.mkdir('res/command')
 
# self.startDate.textFromDateTime()
 
 
 @pyqtSignature("")
 def on_run_btn_clicked(self):
 """
 創(chuàng)建任務(wù).
 """ 
 
 # 在查詢欄顯示的內(nèi)容
 cmd = self.taskRun.toPlainText()
 # 構(gòu)建'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'日期出錯(cuò)', u'結(jié)束日期要大于開始日期')
 
 elif not p.isdigit():
 QtUtil.showOkDialog(self, u'頻率出錯(cuò)', u'運(yùn)行頻率必須為整數(shù)')
 
 else:
 # 如果任務(wù)條件不完整,則創(chuàng)建失敗
 if self.taskName.text()=='' or self.modifier.text()=='' or cmd=='':
 QtUtil.showOkDialog(self, u'創(chuàng)建失敗', u'任務(wù)內(nèi)容缺失')
 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'
 # 如果任務(wù)名在filename中能找到,則說明任務(wù)已經(jīng)存在
 if '/' + str(self.taskName.text()) + '.cmd' in fn:
 QtUtil.showOkDialog(self, u'創(chuàng)建失敗', u'任務(wù)已存在')
 
 else:
 
 # 任務(wù)內(nèi)容
 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'時(shí)間錯(cuò)誤', u'設(shè)置時(shí)間早于當(dāng)前時(shí)間')
 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()
 
 # 創(chuàng)建命令文件
 fd = open('res/command/'+self.taskName.text()+'.bat','w')
 fd.write(cmd)
 fd.close()
 
 # 創(chuàng)建任務(wù)文件
 f = open('res/command/'+self.taskName.text()+'.cmd','w')
 f.write(run)
 f.close()
 # 創(chuàng)建任務(wù)
 os.system(os.getcwd()+'\rescommand\'+str(self.taskName.text())+'.cmd')
 QtUtil.showOkDialog(self, u'創(chuàng)建成功', u'創(chuàng)建成功')
 @pyqtSignature("")
 def on_delete_btn_clicked(self):
 """
 刪除任務(wù).
 """
 # 強(qiáng)制刪除刪除框內(nèi)任務(wù)
 x=os.system('schtasks /delete /tn '+str(self.taskDelete.text()).decode('gbk')+' /f')
 # 如果已經(jīng)任務(wù)已經(jīng)刪除,則報(bào)任務(wù)不存在
 if x==1:
 QtUtil.showOkDialog(self, u'刪除失敗', u'任務(wù)名錯(cuò)誤或不存在該任務(wù)')
 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()
 # 刪除任務(wù),并刪除命令文件與任務(wù)文件
 QtUtil.showOkDialog(self, u'刪除成功', u'刪除成功') 
 
 @pyqtSignature("")
 def on_query_btn_clicked(self):
 """
 查詢?nèi)蝿?wù).
 """
 # 調(diào)整 936 為 437 美國編碼,才可運(yùn)行
 os.system('chcp 437')
 # 查詢?nèi)蝿?wù)
 os.system('schtasks /query')
 # 在生成新log文件前先刪除以前的log文件
 if os.path.exists('res/log.txt'):
 os.remove('res/log.txt')
 
 # 遍歷'res/command'的所有文件,將所有文件內(nèi)容復(fù)制到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文件內(nèi)容
 self.taskQuery.setText(str(info))
 else:
 QtUtil.showOkDialog(self, u'失敗', u'不存在任務(wù)')
 
 @pyqtSignature("")
 def on_delall_btn_clicked(self):
 """
 清空任務(wù).
 """
 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'任務(wù)清空')

“任務(wù)名稱”填寫任務(wù)的名字,計(jì)劃類型選擇時(shí)間,頻率填寫次數(shù),在計(jì)劃類型中除了monthly之外的其他類型都填寫頻率,monthly時(shí)日期填寫日期號數(shù),月份也只在選擇monthly時(shí)候需要選擇,其他時(shí)候不用選擇,月份中*號問任意月,接著填寫開始時(shí)間、開始日期、結(jié)束日期,結(jié)束日期要大于開始日期,最后填寫所要執(zhí)行的命令,則任務(wù)創(chuàng)建成功。,創(chuàng)建任務(wù)后隨時(shí)可以查閱任務(wù),點(diǎn)擊查詢?nèi)蝿?wù)即可,刪除任務(wù)只要填上要?jiǎng)h除的任務(wù)名稱,點(diǎn)擊刪除任務(wù)即可,清空任務(wù)為刪除所有任務(wù)。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

python版本的仿windows計(jì)劃任務(wù)工具_(dá)python

python版本的仿windows計(jì)劃任務(wù)工具_(dá)python:這篇文章主要介紹了python版本的仿windows計(jì)劃任務(wù)工具,計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行的計(jì)劃,當(dāng)然功能不是很全大家可以補(bǔ)充計(jì)劃任務(wù)工具-windows計(jì)劃任務(wù)工具根據(jù)自己設(shè)定的具體時(shí)間,頻率,命令等屬性來規(guī)定所要執(zhí)行
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top