2013-06-20 91 views
1

我有一个程序在特定文件夹中创建临时文件。然后,几秒钟后自动删除这些文件。连续执行robocopy powershell两次建立

我想这些时间文件复制到一个特定的文件夹,我想用PowerShell脚本来做到这一点:

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

我的问题是我不能使用计划任务(因为限制秒的问题),或者将这个powershell作为Windows服务与powershell脚本一起安装(据我所知这是一个不好的做法)。在这个文件夹被删除之前,我需要这个运行所有时间的powershell来创建文件。

你能帮我一下吗?谢谢!

+0

任何你可以实现像DFS-R而不是'Robocopy'解决方案的机会吗? – Kane

回答

3

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

但是,这可能是由于使用这种方法,robocopy不会退出 - 它会运行,直到你杀死它。

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

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

+0

我用'/ mon:1'进行了测试,并且总是不工作:(另一个进程可能太快了,它创建了59个不同的文件,2个png,但是powershell无法捕捉到它... – AlexMJ

+0

我想你会有同样的问题,无论 - 你可以使任何自定义的Windows应用程序[监视目录更改](http://msdn.microsoft.com/en-us/library/windows/desktop/aa365261.aspx ),但在你的情况下,你会一直在与另一个进程竞争。也许你需要调查一个不同的方法? – icabod

+0

我会的,谢谢你的时间^^ – AlexMJ