使用Copy-Item复制文件夹 - 不同的行为

Iva*_*van 12 powershell

我想用整个文件夹复制到另一个文件夹Copy-Item.

我的源文件夹c:\base包含一些文件:

????base    
?       file1.txt
?       file2.txt
Run Code Online (Sandbox Code Playgroud)

我使用以下命令:

Copy-Item c:\base c:\target -recurse

如果目标文件夹(c:\target)存在,该命令将完全按照我的要求复制源文件夹:

????target
?   ????base    
?           file1.txt
?           file2.txt
Run Code Online (Sandbox Code Playgroud)

如果目标文件夹不存在,该命令将创建目标文件夹(完全按照我的意愿),但现在它只复制源文件夹的内容(没有base文件夹):

????target    
?       file1.txt
?       file2.txt
Run Code Online (Sandbox Code Playgroud)
  • 为什么会这样?
  • 如何在不创建目标文件夹的情况下使用此复制命令(附加键?)?

man*_*lds 9

这是一个已知的错误(有些人会说):

http://groups.google.com/group/microsoft.public.windows.powershell/msg/3327f2d1544e7fb6?as_umsgid=6CAEDDC7-0F1A-4B21-8FB0-E6102A16EB51@microsoft.com

这种行为IMO是powershell使用的提供者和对象管道模型的一个特色.您必须习惯于导航上下文与其他shell相比有点奇怪的想法; 它是显式的而不是隐式的,因为文件系统是可以使用的许多上下文之一.这带来了一些奇怪的行为,因为任何给定路径的目标都是使用powershell的泛型语法和命令本身的组合来处理的,而不是像command.com/cmd.exe这样的shell中的命令完全处理.