代码之家  ›  专栏  ›  技术社区  ›  noahd

Robocopy错误代码6“句柄无效”

  •  2
  • noahd  · 技术社区  · 15 年前

    我编写了一个python脚本,它使用子进程调用robocopy从远程主机同步日志文件。

    像这样:

    program = 'Robocopy'
    options = ['/S']
    args.append(program)
    args.append(options)
    args.append('\\\\%s\%s' % (hostname, source_path))
    args.append(local_path)
    proc = subprocess.Popen(args=args, shell=True, stdout=cmd_log, stderr=error_log) 
    

    其中source_path是远程主机上的路径,local_path是本地主机上的路径(两个UNC路径)。 代码通常在守护进程中运行,每隔几个小时就会启动一次。也可以直接在命令提示下运行此代码。当它在守护进程中运行时,有时我会从robocopy中得到一个错误:

    错误代码6:“句柄无效”

    但是当我在命令提示下运行这个命令时,我没有得到任何错误。从我在网络搜索中发现的内容来看,这可能与正在传输的文件上已经打开的文件句柄有关。有没有人有更多关于这个错误的信息和避免它的方法?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Peter Hansen    15 年前

    谷歌搜索 "robocopy handle is invalid" 建议您使用/b选项“备份模式”可能会获得成功。

    即使这不起作用,我建议在复制(或记录)文件名时添加代码以输出文件名,一旦确定了具体的失败文件,您可能也会意识到问题所在。