检查文件是否打开

时间:2012-06-07 13:49:33

标签: batch-file

我正在尝试通过批处理文件将文件从UNIX / Windows目录移动到SharePoint目录。我知道我想要使用的命令只是一个简单的move g:\...\*.* z:\,但我不想尝试移动当前打开的任何文件。有没有办法检查目录中的文件是打开/正在使用,然后只对非打开文件执行移动?

1 个答案:

答案 0 :(得分:1)

在Unix上,您可以分别在Windows Sysinternals fuser实用程序上使用handle来查询打开文件的进程。

请记住,这两个必须在控制源文件系统的系统上执行,而不是在复制机上执行。

这种方法的一般问题是检查 - 移动操作不是原子的:您可能永远不会确定文件状态是否已经>选中后更改 之前移动/复制,但是如果我正确地假设您有一个生产者的场景,它将某些内容放在您的共享驱动器上 - 由Sharepoint使用,并且您希望在尝试移动之前确保它已“烘焙” - 那么通常的做法是通过仅在完成工作时将其移动到共享资源来控制生产者端。如果您无法直接控制制作人,可以使用上面提到的utitilies来实现这一目标