要把一个文件夹及里面的子文件、子文件夹、子文件夹里的子文件、子文件夹全部复制到另外一个地方。
用 cmd 要怎么实现?

第一反应是 copy ,然而它只能复制文件夹里的文件,不能复制文件夹里的文件夹。

>copy t1/* t2 /y
The syntax of the command is incorrect.

>copy t1\* t2" /y
t1\a.txt
        1 file(s) copied.

经过一番搜索,正确的做法是:

>xcopy t1 t2 /y/c/s/e
t1\a.txt
t1\t9\New Text Document - Copy (2).txt
t1\t9\New Text Document - Copy (3).txt
t1\t9\New Text Document - Copy.txt
t1\t9\New Text Document.txt
t1\t9 - Copy\New Text Document - Copy (2).txt
t1\t9 - Copy\New Text Document - Copy (3).txt
t1\t9 - Copy\New Text Document - Copy.txt
t1\t9 - Copy\New Text Document.txt
9 File(s) copied

/s 参数是复制目录和子目录,除非它们是空的。
/e 复制所有子目录,即使它们是空的。

xcopy 的微软官方文档:点我

而且 cmd 还有一个不一样的地方,就是很多cmd指令只承认 \ 字符作为路径分隔符,它不承认 / 字符。

为什么我要用 cmd 复制个文件夹呢,因为我发现 .NET C# 的 System.IO 里没有复制文件夹的功能(但是它居然有 Move 整个文件夹的功能)。
官方是给了个示例函数来做这个事情。
我以为用 cmd 能简单一些,结果也这么多麻烦事情。

但是 .NET VB 可真就简单多了。
Microsoft.VisualBasic.FileIO 里就有直接复制整个文件夹的功能:FileSystem.CopyDirectory(src,dest)

Powershell 也简单:

Copy-Item .\t1\* .\t2 -Recurse -Force