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

2 投票
1 回答
5903 浏览
提问于 2025-04-15 17:10

我写了一个Python脚本,使用subprocess来调用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 个回答

1

在谷歌搜索“robocopy handle is invalid”时,大家建议可以试试使用 /b 这个选项,也就是“备份模式”。

即使这样做也不奏效,我建议你可以加一些代码,让它在复制文件的时候输出文件名(或者记录日志),这样一来,一旦你找到了出问题的具体文件,可能也能明白问题出在哪里。

撰写回答