由于其他进程句柄,Bat文件MOVE失败

时间:2011-05-26 10:48:30

标签: batch-file filesystems move

我有一个bat文件作为大型维护系统的一部分,每晚运行,执行一些内务管理,SVN更新等。部分内容涉及移动/删除文件,但是,偶尔会由于另一个进程而失败释放要移动的文件/目录的句柄。有没有办法强制BAT文件覆盖任何现有的句柄并继续MOVE?我只能想到使用ProcessExplorer / Assassin的查找方法 - 虽然我不确定它是否会起作用。或者是“睡眠”,然后如果第一次失败则重新尝试,尽管这将是运气而不是解决潜在问题。任何想法/建议非常感谢。感谢。

2 个答案:

答案 0 :(得分:1)

Robocopy有一个移动功能,可以等待错误

答案 1 :(得分:0)

以下是我在类似情况下所做的一些事情:

  • move命令之前,确保其他脚本线程CD不在目标目录之外。
  • 使用robocopy(来自Resource Kits)和重试/r:3等选项并等待/w:5
  • 将第一个操作编写为COPY,以便脚本可以继续工作,然后在脚本中稍后在旧/不需要的位置执行删除。
  • 正如您已经提到的,使用IF ERRORLEVEL命令创建一个小的重试循环来测试MOVE命令的成功。