Copy-Item -Recurse 跳过创建一个子目录

Copy-Item -Recurse skips Creation of one sub-directory

我想将包含所有子目录的所有文件复制到另一台机器(使用 WinRM 会话),我的脚本的复制部分如下所示:

$sourceDir = "C:\Build\Application1"
$targetDir = "C:\Install\Application1"
Copy-Item -ToSession $session -Path $sourceDir\* -Destination $targetDir -Recurse -Force

$sourceDir 包含两个子目录:

C:\Build\Application1 (3 files)
             |
             +--- Application Files (empty)
                         |
                         +--- Application_2016_12_10_2 (10 files)

场景一

如果文件夹 Application1 不存在 但在 C:\Install 中,执​​行我的脚本后目标文件夹结构如下所示:

C:\Install\Application1 (3 files)
             |
             +--- Application_2016_12_10_2 (10 files)

场景二

如果文件夹 Application1 已经 存在于 C:\Install,目标文件夹结构如预期的那样:

C:\Install\Application1 (3 files)
             |
             +--- Application Files (empty)
                         |
                         +--- Application_2016_12_10_2 (10 files)

为什么我的脚本没有在第一个场景中创建文件夹 Application Files?有人可以澄清一下吗?

我正在使用 Powershell 5

查看您面临的问题是因为您告诉 powershell 从 sourcedir\* 复制项目。结果,它正在寻找它的内容。

所以直接使用它就可以了:

$sourceDir = "C:\Build\Application1"
$targetDir = "C:\Install\Application1"
Copy-Item -ToSession $session -Path $sourceDir -Destination $targetDir -Recurse -Force

希望对您有所帮助