是否有模仿 Unix `cp -r` 行为的 Windows 复制命令?

是否有模仿 Unix `cp -r` 行为的 Windows 复制命令?

我不知道该如何形象地命名这种行为,就这么叫吧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将复制内容里面 includeinclude,不在目标文件夹中创建镜像目录。

在 Unix 上,我知道我可以用 替换loyalcopycp -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" 

相关内容