使用VB.net自动执行任务

我有这个代码来自动化文件夹的备份,它做得很好。 然而,我想每天晚上12点之前自动备份。 ant暗示如何去做这件事将是认真的赞赏。

Imports System.IO Imports System.IO.Compression Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim dstr As String Dim mstr As String Dim ystr As String Dim folstr As String Dim dsumstr As String dstr = DateTime.Today.ToString("dd") mstr = DateTime.Today.ToString("MM") ystr = DateTime.Today.ToString("yyyy") dsumstr = ystr & "-" & mstr & "-" & dstr folstr = "Y:\server1\Fileserver-" & dsumstr Try My.Computer.FileSystem.CreateDirectory(folstr) My.Computer.FileSystem.CreateDirectory(folstr & "\SHARE-AC") My.Computer.FileSystem.CopyDirectory("D:\SHARE-AC", folstr & "\SHARE-AC") Label1.Text = "Back up DATE " & dsumstr & " Complete" Catch ex As Exception Label1.Text = (ex.Message) End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub End Class 

对于我们的Windows服务器,我们使用任务计划程序。 你可以在这里阅读更多。

在这里输入图像说明

添加一个计时器 – 如下所示:

 Dim WithEvents Timer1 As Timer 

设置您的变量(或从任何地方读取它们)。

 Dim runtimestring As String = "12:00 PM" Dim nextruntime As Date 

在启动时将间隔设置到下一个运行时间并启动计时器:

 Sub New() 'set up time interval If Now.TimeOfDay > Date.Parse(runtimestring).TimeOfDay Then 'set nextruntime to tomorrow nextruntime = Date.Parse(runtimestring).AddDays(1) Else 'set nextruntime to today nextruntime = Date.Parse(runtimestring) End If Timer1.Interval = nextruntime.Subtract(Now).TotalMilliseconds Timer1.Start() End Sub 

在Tick事件中,根据需要停止计时器执行你的函数/子程序,然后重新设置时间间隔并重新启动计时器。

 Sub Timer1_Tick() Handles Timer1.Tick Timer1.Stop() 'Add your functions and sub's here..... 'set nextruntime to tomorrow nextruntime = Date.Parse(runtimestring).AddDays(1) Timer1.Interval = nextruntime.Subtract(Now).TotalMilliseconds Timer1.Start() End Sub