我想将包含所有子目录的所有文件复制到另一台机器(使用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
答案 0 :(得分:2)
请查看您遇到的问题是因为您要告诉powershell从 sourcedir \ * 中复制项目。因此,它正在寻找它的内容。
所以直接使用它就可以了:
$sourceDir = "C:\Build\Application1"
$targetDir = "C:\Install\Application1"
Copy-Item -ToSession $session -Path $sourceDir -Destination $targetDir -Recurse -Force
希望有所帮助