我有一个批处理文件,它使用移动命令从另一台计算机提取文件:
move \\otherpc\source\directory\*.bin c:\destination\
通常情况下,如果确实没有符合模式的文件,则 move 将打印:
存在重复的文件名,或者找不到该文件。
如果找不到或无法联系到另一台计算机,它会打印:
找不到网络路径。
但是我有一个移动命令返回:
已移动 0 个文件。
笔记:
- 有符合模式的文件
- 目标文件夹确实存在
- 用户对两个目录(源和目标)都具有读写权限
- 所有文件都不是只读的。
- 目标驱动器未满。
我还遗漏了什么?什么可能导致举动如此?
答案1
我不太清楚是什么导致了你的问题,但我知道一个可能的解决办法:robocopy
move
自 DOS 时代以来就一直存在,并且没有太大变化。与 一起xcopy
,它被新改进的 所取代robocopy
。后者功能更丰富,在某些情况下(网络就是其中之一)错误更少。
从robocopy /?
:
Usage :: ROBOCOPY source destination [file [file]...] [options]
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
file :: File(s) to copy (names/wildcards: default is "*.*").
...
/MOV :: MOVe files (delete from source after copying).
/MOVE :: MOVE files AND dirs (delete from source after copying).
此命令相当于您的move
命令:
robocopy \\otherpc\source\directory c:\destination *.bin /mov
如果可行,就不要担心为什么move
不行。如果不行,下面是其他几个潜在问题和解决方法:
源文件上有一个打开的文件句柄。
源文件已损坏。
源文件的名称不正确。
其他电脑的操作系统和/或文件系统不完全兼容,与 Windows 不完全兼容。
你总是可以先尝试
copy
并del
取得成功。我一直不明白为什么,但有时这样做有效,有时却move
无效……