在我的 xcopy 命令之前检查是否有任何其他副本正在处理中

check if any other copy is in process before my xcopy command

我有 xcopy 批处理实用程序,可以将文件复制到网络驱动器。

在我开始之前,是否有任何方法可以查明是否有其他用户正在将文件复制到上述相同位置??

整个想法是为了防止在其他用户 运行 相同时覆盖文件。

提前致谢

9>"w:\target\file.lock" (
    xcopy "r:\source\*" "w:\target"
) && ( del "w:\target\file.lock" )

在目标文件夹中使用锁定文件。

它所做的是将发送到流 9 的数据重定向到目标文件夹内的一个文件(并锁定它)(有 10 个流,0=stdin1=stdout2=stderr, 3-9 用户定义)。不会向流中写入任何内容,但输出文件将被锁定。

由于重定向包装了 xcopy 命令,文件上的锁一直保持到命令结束。

不太确定,但您可以使用 TASKLIST dos 命令,如下所示;这将为您提供 XCOPY exe 是否已经 运行 的信息。

TASKLIST /FO TABLE /NH /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running" /FI "IMAGENAME eq XCOPY.exe"