0

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

4

1 回答 1

1

在 Unix 上,您可以使用fuser,在 Windows Sysinternals 上分别处理实用程序来查询哪些进程打开了文件。

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

这种方法的一般问题是检查移动操作不是原子的:您可能永远无法确定在检查之后开始移动/复制之前文件状态没有改变,但是如果我正确地假设您有一个生产者的场景将某些东西放在您的共享驱动器上 - 供 Sharepoint 使用,并且您希望在尝试移动之前确保它已“烘焙” - 然后一种常见的做法是在生产者端控制它,仅在处理它时将其移动到共享资源完成了。如果您无法直接控制生产者,则可以使用上述实用程序来实现

于 2012-06-07T17:49:01.113 回答