我不知道该如何形象地命名这种行为,就这么叫吧loyalcopy
。
两个数字可以清楚地说明这一点。
我想发出两个命令来复制两个文件系统节点(无论它是目录的文件):
loyalcopy c:\libsrc\include d:\temp\dest
loyalcopy c:\libsrc\mm_psfunc.h d:\temp\dest
并看到如下结果:
哪些实际的 Windows 命令可以实现此效果?我试过复制和机器人复制,并且它们无法按预期工作。例如,xcopy c:\libsrc\include d:\temp\dest /s
将复制内容里面 include
include
,不在目标文件夹中创建镜像目录。
在 Unix 上,我知道我可以用 替换loyalcopy
来cp -r
实现所需的结果。但是 Windows 上有类似的命令吗?最好使用 Windows 常用命令,不要使用第三方软件。
答案1
只需在 PowerShell 中运行即可cp -r c:\libsrc\include d:\temp\dest
。它会按预期工作。它实际上是
Copy-Item -Recurse -Path c:\libsrc\include -Destination d:\temp\dest
robocopy /E c:\libsrc\include d:\temp\dest\包括 xcopy /E /I /H c:\libsrc\include d:\temp\dest\包括
/I:
如果来源是目录或包含通配符,并且目的地不存在,xcopy
假设目的地指定目录名称并创建新目录。然后,xcopy
将所有指定的文件复制到新目录中。默认情况下,xcopy
会提示您指定是否目的地是一个文件或者一个目录。https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/xcopy
要获取任何经典 Windows 工具的帮助,只需使用/?
,例如xcopy /?
。robocopy /?
请注意xcopy 已被弃用将来可能会被删除
答案2
尝试这个:
xcopy /h /e /i "c:\libsrc\include\" "d:\temp\dest\include\"
xcopy /h /e /i "c:\libsrc\mm_psfunc.h" "d:\temp\dest\mm_psfunc.h"