我通常很喜欢 Vista,但我发现它的文件移动功能很差。
我有这两个目录
C:\dir1\
C:\dir2\
它们都包含许多子目录,子目录本身包含文件和子目录等。它们基本上具有相同的结构,但文件的内容不同。
我想要做的是将所有子目录C:\dir1\
移动到C:\dir2\
,覆盖 中的内容C:\dir1\
。
如果我通过在 Windows 资源管理器中拖动来执行此操作 - 它不起作用。它会询问我是否确定要合并,但之后它什么也不做。
如果我一次只对一个目录执行此操作,有时它会起作用,有时则不起作用。当它起作用时,它会将原始目录保留为空,这无害但很奇怪。
有什么好的、自动的、最好是命令行的方式来表示“将此目录的内容移到此目录的内容之上,是的,我是认真的,是的,覆盖所有内容,不,不要再问我任何问题,就这样”?
另外请告诉我 Windows 7 是否修复了这个问题。
答案1
xcopy c:\dir1 c:\dir2 /E /H /R /X /Y /I /K
成功了。
可通过命令行在 Vista 和 7 中运行。
供参考,这是此命令中开关的作用:
- /E 复制目录和子目录,包括空目录。
- /H 同时复制隐藏文件和系统文件。
- /R 覆盖只读文件。
- /X 复制文件审核设置(隐含/O)。
- /Y 抑制确认是否覆盖现有目标文件的提示。
- /I 如果目标不存在并且复制多个文件,则假定目标必须是一个目录。
- /K 复制属性。常规 Xcopy 将重置只读属性。
您可以通过输入以下内容了解更多信息xcopy /?在命令行中。
如果你想完成“移动”,你只需删除 c:\dir1路径 c:\dir1 /S /Q
可能值得使用记事本将这两个命令粘贴到批处理文件(末尾带有 .cmd 或 .bat 的文本文件)中。然后您只需双击快捷方式即可。