Javascript 在文件更改时运行脚本

Javascript 在文件更改时运行脚本,javascript,python,node.js,windows,lua,Javascript,Python,Node.js,Windows,Lua,我一直在努力解决一个问题,我可以用一些方法来解决这个问题 我有一个在windows机器上运行的程序。运行程序时,将数据写入JSON格式的文件。当程序关闭时,它停止写入数据文件,清理文件,然后关闭它 我需要在数据文件关闭或更改时触发脚本 我曾尝试使用一个lua脚本来实现这一点,该脚本在运行的程序关闭时触发,但无法访问该文件,因为在脚本执行时该文件仍处于打开状态 出于这个原因,我试图弄清楚如何监视文件的更改。一旦文件被更改/关闭,我需要做的就是将文件复制到另一个位置 我不知道需要什么编程语言来实现这

我一直在努力解决一个问题,我可以用一些方法来解决这个问题

我有一个在windows机器上运行的程序。运行程序时,将数据写入JSON格式的文件。当程序关闭时,它停止写入数据文件,清理文件,然后关闭它

我需要在数据文件关闭或更改时触发脚本

我曾尝试使用一个lua脚本来实现这一点,该脚本在运行的程序关闭时触发,但无法访问该文件,因为在脚本执行时该文件仍处于打开状态

出于这个原因,我试图弄清楚如何监视文件的更改。一旦文件被更改/关闭,我需要做的就是将文件复制到另一个位置


我不知道需要什么编程语言来实现这一点,但我想python可以做到。我没有python方面的经验,但如果需要完成此任务,我愿意学习。我对nodejs、javascript和Lua有一定的了解。

编程语言不是关键的选择;使用任何对你方便的东西。困难的部分是在文件更改时生成Windows报告

操作系统是一个资源管理器;试图监视目标资源的任意更改可能会占用大量资源。如果您想这样做,可以调度(cron)一行shell命令,查找自上次运行以来的任何更改。检查修改时间戳。如果该文件最近发生了更改,请启动脚本

您无法合理地运行一致的监视进程。这种功能太昂贵,无法制作操作系统原语,就像“忙循环”检查一样

如果您的用例需要在每次更改时触发脚本,即使连续的更改间隔仅为毫秒,那么我知道您的问题没有可行的解决方案。如果您对每个周期只触发一次(十分钟?)感到满意,那么检查修改时间对您来说应该足够了

最重要的是,处理这种情况的“正确”方法是您首先尝试的:将触发器构建到更新程序的设计中。如果没有这种协调,您的问题就等同于入侵检测,而入侵检测在系统资源方面并不完美


您可以使用
lua
脚本直接检查文件的修改时间<代码>属性返回文件属性的集合,包括最近的修改时间戳。

问题不清楚。你在程序中使用什么语言?也许您应该运行运行原始程序的脚本/程序,当它完成后,它将运行复制文件的代码。这在任何可以运行其他程序的语言中都是可能的,即使是
PHP
,使用命令sililar to
exec()
。也许您应该直接将文件保存在预期的位置,而不是使用
copy
。对不起,问题很清楚。我问什么语言可以用来监视文件的更改。这个程序是一个商业windows应用程序,我可以修改它。每当程序运行时,输出的文件都会被程序写入,除了有计划的重新启动外,该文件始终处于运行状态。在这些重新启动期间,我希望将现在已关闭的数据文件复制到另一个位置,在该位置我将对其运行其他操作,同时程序将重新打开原始文件并再次开始写入。对于此问题,答案是-任何语言。感谢您的回答。我同意。我的问题是,我无法找到一种方法使我的lua脚本等待我无法控制的另一个函数完成对文件的写入以执行,这导致我的脚本失败。我很震惊,这超出了我的能力,但我想我会看看是否有人知道如何实现这一点,因为我已经问过如何让我的lua脚本/函数在没有运气的情况下等待。啊哈!因此,您不需要永久触发器,只需在脚本等待时进行一次性检查。您不能从lua检查文件状态吗?