批处理脚本 – 如何释放一个locking文件批量“复制”

每天Windows计划任务触发一个批处理脚本,使用简单的复制例程将程序文件移动到服务器上的文件夹中。

rem deploy programfiles copy dailybuild\*.dll "\\myserver\programfiles" /Y copy dailybuild\*.exe "\\myserver\programfiles" /Y 

这工作得很好,除非有人真正运行可执行文件,这是由于locking的文件导致副本失败。

由于这是在terminal服务器上,并且用户可能从共享文件夹(不在terminal服务器上创build进程)运行该exe文件,我找不到正确的方法来解决此问题。

如何在复制执行前释放locking的文件? 粗略的解决scheme可能是重新启动terminal服务器,但我希望有另一个解决scheme。

目前我正在使用常规的批处理脚本,我还没有看过PowerShell。

任何人都有针对这个问题的“最佳实践”解决scheme?

你可以使用第三方工具来帮助你做到这一点。 有一个工具调用“HoboCopy”,利用卷影复制制作一个正在使用的文件的副本。

这是一个很酷的howtogeek文章如何使用它。