我想在 Windows 环境中执行以下操作:
监视文件夹中是否有新文件出现,当出现此类文件时,将其移至其他文件夹。不一定需要实时发生,但希望将其保持在文件出现后 15 分钟内。
在 Linux 中,有一个内核钩子可以实时监控目录中新文件的出现,我不知道 Windows 中是否存在类似的东西,或者这是否是一个理想的解决方案。我想听听一些关于如何实现这一点的建议。我在 Linux 中经常使用 rsync;它在 Windows 下是否一样可靠?更重要的是,rsync 是否能够处理文件已出现但尚未完全写入的情况 - 在这种情况下,rsync(或其他工具)是否可以等到文件完全写入后再尝试移动它?
我确信其他系统管理员也必须处理此类问题,因此,我更愿意听听其他人的做法,而不是自己重新发明轮子。
答案1
您可能可以使用类似以下批处理文件来完成此操作:
:loop
ping 127.0.0.1
move "f:\path\*.ext" "g:\path\"
GOTO loop
它并不智能或漂亮,但我偶尔会用它。
答案2
Robocopy 应该可以做到这一点,但免责声明:我自己从未尝试过。
以下是指向上一个问题的链接,应该可以为您提供一些很好的答案。这样,您就可以使用 Windows 内置的工具,而不必费心处理批处理脚本等。
如果这对你有用,一定要回来发帖!我非常有兴趣看看实施效果如何。
答案3
您可以在实际文件完成后发送第二个文件(甚至是空文件)来缓解文件完成问题。文件观察器应检查此触发文件,然后您的脚本将处理数据文件。
答案4
System Center Orchestrator 非常适合此用途。以下是 Microsoft 的文档。 http://technet.microsoft.com/en-us/library/hh440534.aspx