Copy-Item -Rerserse skip创建一个子目录

时间:2016-12-10 08:39:06

标签: powershell powershell-remoting

我想将包含所有子目录的所有文件复制到另一台机器(使用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)

情景1

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

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

场景2

如果Application1中的文件夹C:\Install已经存在,则目标文件夹结构将如预期般显示:

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

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

我正在使用Powershell 5

1 个答案:

答案 0 :(得分:2)

请查看您遇到的问题是因为您要告诉powershell从 sourcedir \ * 中复制项目。因此,它正在寻找它的内容。

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

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

希望有所帮助