使用应用程序时每隔 x 分钟运行一次 .cmd 文件?

使用应用程序时每隔 x 分钟运行一次 .cmd 文件?

我正在尝试找到一种每 15 分钟增量备份一个文件夹的方法,但前提是 VS Code 自上次备份以来一直被使用/处于焦点状态。

有人知道我该怎么做吗?

答案1

在 AutoHotkey 中相对容易做到...如果您以前没有使用过它,您可能还想使用具有语法高亮功能的 SciTE4AutoHotkey。

以下是执行类似操作的粗略概述...您必须调试代码才能使窗口标题正常工作(使用托盘图标中的窗口间谍功能获取适合 VS Code 的 WinTitle,并参阅帮助说明WinTitle)。您还必须调试运行语句以使其运行备份...您可以直接运行备份或作为批处理文件运行,有时让批处理文件工作更容易。

; Global variable to store last active window time
Global gLastActive 

; This will call the Backup() function periodically..
SetTimer, Backup, % 15*60*1000 ; 15 minutes, in milliseconds

; This is the main loop, just sets a global if the window is active at any point
Loop {
    If WinActive("VS Code") {           ; this will need to be a valid WinTitle
        gLastActive := A_TickCount
        ; MsgBox % "Window detected..."     ; debug message for getting WinTitle correct
    }
    
    Sleep 1000
}

ExitApp         ; Denote logical end of program, will never execute


; Backup function will run periodically and only back things up
;    if VS Code was active since last time...
Backup() {
    Static lastTick
    
    ; If the window was active after the last backup, run a backup this time
    If (gLastActive>lastTick)
        Run, C:\Target.cmd, C:\WorkingDir, Hide ; this will need to be corrected for syntax
    
    lastTick := A_TickCount
}

笔记:这是完全未经测试的代码,仅为您提供一个可以尝试的框架示例。

相关内容