我想要一种在打开文件的程序之外保存打开文件的方法——一种强大而简单的方法,可以双重确保高度重要的文件在本地保存。
那么,是否可以创建一个 shell 脚本,在打开文件后运行该脚本,该脚本每五分钟自动保存一次焦点窗口中的文件?
为了简单起见,这可能意味着仅保存已经保存的文件(即不需要指定文件名和保存位置的文件),这很好;换句话说,该脚本相当于每 5 分钟按一次 S 键,无论当前关注的是哪个程序。
我个人的兴趣主要是保存 LibreOffice 文件,但如果可以使其更加通用,那就太好了——不仅对我而言,而且希望对任何有类似担忧的人来说都是如此。
提前感谢您提供的任何帮助。
答案1
回应那些讨厌 MS Autosave 的人的评论,因为只要你做出更改,它就会立即覆盖你的文档,从而删除你之前的版本。除非你有先见之明,在做出这些更改之前制作一份副本,例如当你将表格更新到新的一年时。
我正在通过 VBA 模块在 MS Excel 中在线找到一个脚本(我认为这也适用于任何版本的 Open Office),该脚本执行以下操作:
- 在您对电子表格所做的更改完成后 10 秒内保存 Excel 电子表格的副本(并覆盖旧版本)。也就是说,在用户向表单添加数据或文本后暂停 10 秒或更长时间。这样,当您主动向表单输入数据或文本时,它不会持续保存。
- 只要发生了更改,每五分钟就会保存一次电子表格的新迭代。如果您想回顾迭代中可能已删除或重新格式化的文本或数据,这是理想的选择。
- 如果需要,无论是否进行了更改,都可以保存新的迭代。这将显示活动的时间线以及它在流程中发生的时间。
这些保存间隔可以根据您的喜好进行更改。并且此脚本应该可以在任何其他 Microsoft 或 Open Office 文档中运行,例如 Word、PowerPoint、Access、Publisher 和可能的 OneNote 或它们的 Open Office 等效程序。
我在网上找到了以下脚本。这是一个非常基本的开始,我知道它需要很多额外的代码。我正试图将其融入我已经非常忙碌的日程安排中。任何建议都会被考虑。我尝试了几个不同的命令,似乎已经成功了。但你认为理论上可行的,在实践中当然是另一回事。
私有子工作簿_打开()
出现错误时转到消息
Appication.AskRoUpdatezlinks = False ThisWorkbook.UpdateLinks = xlUpdateLinksNever ActiveSheet.DisplayPageBreaks = False Application.ScreenUpdating = False Application.DisplayAlerts = False
Dim currentTime As Date currentTime = DateAdd("s", 10, Now) Application.OnTime currentTime, "SaveFile"
退出子消息:Application.DisplayAlerts = False 退出子
子目录结束
感谢您阅读本文。我希望这对某些人(包括我自己)有所帮助。我已经绞尽脑汁想出除了 MS Autosave 之外还能起作用的方法。如果我能解决问题,脚本似乎是最可靠的选择。
山姆