Powershell Copy-Item 递归但不包含文件夹名称

Cle*_*ick 28 powershell

这是一个愚蠢的问题,但我只是不知道为什么它不起作用。

我正在尝试以递归方式将文件从 FolderA 复制到 FolderB。我正在这样做:

Copy-Item -Path "C:\FolderA\" -Destination "C:\FolderB\" -recurse -Force -Verbose
Run Code Online (Sandbox Code Playgroud)

它工作得很好,没问题。

除了 FolderB 中的结果是这样的:

C:\FolderB\FolderA\file.txt
Run Code Online (Sandbox Code Playgroud)

而我希望它是:

C:\FolderB\file.txt
Run Code Online (Sandbox Code Playgroud)

我错过了什么愚蠢的显而易见的事情?

Fas*_*net 37

您的命令告诉 PowerShell 将文件夹本身及其所有内容复制到目标文件夹。要仅复制原始文件夹的内容,请按如下方式更改路径:

Copy-Item -Path "C:\FolderA\*" -Destination "C:\FolderB\" -recurse -Force -Verbose
Run Code Online (Sandbox Code Playgroud)

请注意文件夹名称后面的星号 (*)。这会将文件夹的内容(包括子文件夹)复制到目标文件夹,但不会将文件夹本身复制到目标文件夹。

使用 Copy-Item Cmdlet

  • 请注意,如果目标文件夹不存在,则此 * 不会* 复制文件夹结构。在 `Copy-Item` 之前调用 `md "C:\FolderB"` 似乎可以避免这个问题。 (4认同)
  • 另请参阅[对SO的评论](/sf/answers/414850131/)。 (2认同)