![使用批处理移动(而不是复制)映射网络驱动器上的文件和文件夹](https://linux22.com/image/1620119/%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E7%A7%BB%E5%8A%A8%EF%BC%88%E8%80%8C%E4%B8%8D%E6%98%AF%E5%A4%8D%E5%88%B6%EF%BC%89%E6%98%A0%E5%B0%84%E7%BD%91%E7%BB%9C%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我正在尝试将move
文件夹和文件从一个位置移动到另一个位置上的同一个映射网络驱动器上。
我使用过 ROBOCOPY 和 XCOPY。但是它们会复制然后删除文件。我的文件可能超过 50GB,因此我想移动。
move "P:\public\video\recording\123\*.*" "P:\public\video\recording\"
move /S "P:\public\video\recording\123\*.*" "P:\public\video\recording\"
move "P:\public\video\recording\123\*" "P:\public\video\recording\"
move "P:\public\video\recording\123\*" "P:\public\video\recording."
以上都不起作用。
我不确定这是否可能?
我尝试过很多不同的变化,但都没有成功。
附加信息
好的,阅读评论,这个命令在网络共享上工作吗?
我注意到以下情况:
- 当仅移动文件时,脚本会移动文件,而不是复制文件。使用 40GB 文件进行测试。
- 当您有包含文件的文件夹时,它会复制然后删除它们。
这些是我迄今为止的观察。
答案1
您的方法导致它不起作用。
因为您从一个网络转到另一个网络位置,所以总是会使用一个副本,从资源管理器执行时也是如此。
这是因为您的计算机不知道它是在同一个硬盘上。
为了移动文件并仅更改目录,您需要在实际托管文件的计算机/服务器上执行操作,这样命令就知道它只需要更改硬盘的索引,而不是物理复制/删除文件。
您可以使用移动命令来执行此操作,只需在物理驱动器本身上执行此操作即可。如果您在物理计算机上,但仍使用网络共享,即使该网络共享链接到同一台计算机,它也不会起作用。因此,如果您的 P:\public 链接到 c:\shares\public,您必须在 c:\shares\public 上执行移动命令,而不是 p:\public。
答案2
关注问题的技术细节,它应该像您所说的那样工作,除非这些命令实现了某种安全功能。为什么?事情可能会失败,您会丢失文件。顺便说一句,您可以使用 Windows 资源管理器通过剪切和粘贴执行此类任务,但如果出现问题,您会丢失文件。我理解(或至少假设)您想要直接回答问题,而不是直接寻求建议,但根据多年来在网络上遇到的问题,我永远不会直接处理移动文件的任务,我会先复制,然后删除。为什么?多年来我所看到和经历的东西。
除此之外,通过 Windows 资源管理器剪切和粘贴功能可以处理驱动器和 USB 存储器。我不建议这样做,但有点符合问题。