Мой код работает непоследовательно, хотя он имеет высокий уровень успеха.Сценарий Autohotkey - FileCopy не работает последовательно при выполнении резервного копирования в Dropbox
Что он делает, так это то, что он сохраняет файл ahk и автоматически создает его резервную копию в папке Dropbox. Однако несогласованная часть заключается в том, что иногда резервная копия не выполняется в папке с Dropbox. Как мне изменить свой сценарий, чтобы убедиться, что резервная копия выполняется в 100% случаев? Благодаря!
Мой код ниже:
RCtrl::
SaveMyFile()
CloseAhk() ; to backup ahk file in dropbox & close editor
Return
SaveMyFile() { ; to save the ahk file and reload it
WinGetActiveTitle, Reload
If InStr(Reload, ".ahk") { ; to check if it is ahk file
MsgBox, , , to_run.ahk is reloaded, 0.6
Send ^s
Reload
}
Else
Send ^s
}
CloseAhk() {
IfWinActive, to_run.ahk - Notepad
{
FileAhkBackup() ; calls the backup function
WinClose ; to close the ahk file
}
}
FileAhkBackup() { ; the backup function
FileCopy, C:\Users\xxx\Desktop\to_run.ahk, C:\Users\xxx\Dropbox\AHK\, 1
}
Еще раз спасибо :)
Почему бы вам просто не создать [жесткую ссылку] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006 (v = vs.85) .aspx) для вашего скрипта файл? – MCL
Я полагаю, что это может быть обходным путем, однако я хотел бы понять, почему он не работает должным образом. –
Одной из причин может быть то, что вы скопируете файл до его сохранения в Блокноте. Я не знаю, как именно Блокнот обрабатывает операцию сохранения, но я думаю, что он просто перезаписывает весь файл. Копирование файла, который внезапно переписывается, звучит как плохая идея. Попробуйте дождаться завершения операции сохранения. Проверка [последнего времени модификации] (https://autohotkey.com/docs/commands/FileGetTime.htm) в цикле может быть хорошим способом. – MCL