1

我有一个程序可以在特定文件夹中创建临时文件。然后,几秒钟后,这些文件会自动被删除。

我想将这些临时文件复制到特定文件夹,我想使用 powershell 脚本来执行此操作:

  robocopy startFolder destinationFolder *.TIFF *.JPEG *.jpg *.PNG *.GIF *.BMP *.ICO *.PBM *.PGM *.PPM /s /XO

我的问题是我无法使用计划任务(因为存在秒数限制的问题)或使用 powershell 脚本将这个 powershell 作为 Windows 服务安装(据我所知是一种不好的做法)。在删除此文件夹之前,我需要一直运行此 powershell 以尝试在创建文件时获取文件。

你能帮我一把吗?谢谢!

4

1 回答 1

3

不确定这是否是您想要的,但robocopy确实具有内置的目录监控功能。您可以添加/mon:1应该监视源目录的目录,并在它检测到一个更改(例如,新的或更改的文件)时重新运行副本。

然而,这样做的一个缺点可能是使用这种方法,robocopy 不会退出 - 它会一直运行直到你杀死它。

编辑:我刚刚注意到您在问题标题中指定这应该在两个既定时间之间运行,在这种情况下,您可以添加/rh:hhmm-hhmm选项来指定可以启动新副本的时间。例如,/rh:1000-1200应该只在上午 10 点到中午之间执行复制(以及监控)。

警告:我没有尝试使用 robocopy 的“监视器”选项,所以我不确定在发生更改和重新运行副本之间会有什么样的延迟,但值得一试。

于 2013-06-20T11:04:07.207 回答