Matlab function to periodically save modified scripts (including unsaved Untitled
scripts) to a backup directory (organized by date and Matlab instance).
Typical use case is to call this function from startup.m such that this runs in the background.
Matlab may close before there is an opportunity to save modified functions/scripts (e.g. Untitled
scripts), e.g. OS restart or Matlab crash.
This script will check and back up all unsaved files/scripts in the Matlab editor, to prevent data loss in case Matlab closing before the opportunity to save. That said, the script's main purpose is to handle backing up unsaved Untitled
scripts because Matlab does not currently save or back up these scripts.
Backup unsaved scripts (including unsaved Untitled
scripts) to a backup directory every autoSaveRefresh_sec
.
Backup instance folders are created and auto-incremented to handle multiple opened matlabs.
Example backup directory (with defaults):
Example OS path: userpath
/backup/2020-12-26/MatlabInstance3/
Example path using param names: backupDir
/backupSubDirFormat
/backupInstanceDir
number
/
Params:
autoSaveRefresh_sec
[default500
] Refresh time in seconds.backupOnlyUntitled
[defaultfalse
] If true, only unsavedUntitled
scripts are backed up. Otherwise, all unsaved files are backed up.
Debug flags:
debug.stopOnError
[defaultfalse
] Stop (rethrow) if timer errors are encountered.debug.keyboardOnError
[defaultfalse
] Pause if timer errors are encountered (if true, will pause before the rethrowing the error).debug.verbosePrints
[defaultfalse
] Prints when creating the backup dir and saving backup scripts, see local functionDebugPrintf
.
Testing on MATLAB 2019b, Windows OS
- All paths should be OS agnostic.
- Uses
matlab.desktop.editor
commands to access the editor which may be MATLAB version dependent.