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

时间:2015-06-02 13:21:37

标签: batch-file dos

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

有没有办法在我开始之前找到是否有其他用户将文件复制到同一个上面的位置?

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

先谢谢

2 个答案:

答案 0 :(得分:2)

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

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

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

由于重定向正在包装xcopy命令,因此将保留对文件的锁定,直到命令结束。

答案 1 :(得分:0)

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

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