Estoy tratando de encontrar una manera de realizar una copia de seguridad incremental de una carpeta cada 15 minutos, pero solo si se ha utilizado/enfocado VS Code desde la última vez que se realizó una copia de seguridad.
¿Alguien tiene una idea de cómo podría hacer esto?
Respuesta1
Relativamente fácil de hacer en AutoHotkey... si no lo ha usado antes, es posible que también desee utilizar SciTE4AutoHotkey, que tiene resaltado de sintaxis.
Aquí hay un esquema aproximado para hacer algo similar... tendría que depurar el código para que el título de la ventana funcione correctamente (use la función Espía de ventana desde el ícono de la bandeja para obtener un WinTitle apropiado para VS Code y consulte la descripción de la Ayuda en WinTitle
). También tendría que depurar la instrucción de ejecución para que ejecute una copia de seguridad... puede ejecutar la copia de seguridad directamente o como un archivo por lotes y, a veces, es más fácil hacer que un archivo por lotes funcione.
; 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
}
Nota:Este es un código completamente no probado, solo le brinda un ejemplo de marco para que tal vez intente comenzar.