【发布时间】:2019-02-07 21:11:26
【问题描述】:
将文件从多个子文件夹复制到另一个多个子文件夹
示例:
C:\Nani\Code\Relase4\database1\tables
C:\Nani\Code\Relase1\database1\tables
C:\Nani\Code\Relase2\database1\tables
C:\Nani\Code\Relase3\cycle1\database1\tables
C:\Nani\Code\Relase1\database1.02.tables
我在所有文件夹中都有 .sql 文件,我想复制到
C\Build\database1\tables
如果 database1\tables 目录不存在,我也必须创建它,
$sourceFolder = "C:\Nani\Code"
$targetFolder = "C\Build"
Get-Childitem $sourceFolder -recurse -filter "*.sql" -Exclude $exclude | %{
#If destination folder doesn't exist
if (!(Test-Path $targetFolder -PathType Container)) {
#Create destination folder
New-Item -Path $targetFolder -ItemType Directory -Force
}
Copy-Item -Path $_.FullName -Destination $targetFolder -Recurse -force
}
上面的代码没有在目的地创建子文件夹,
【问题讨论】:
-
因为它本身并没有进入那个条件。另外,我想知道您在
Exclude参数中传递的内容是什么。 -
$exclude ="*.cs" 文件,能否请您发送脚本
-
如果您已经使用 *.sql 进行过滤,则不需要使用排除。所以,我已经删除了那部分本身。我已经发布了答案。请相应地修改脚本。 robocopy 还可以将多个源文件夹复制到一个目标,反之亦然。通过ROBOCOPY USAGE
标签: powershell powershell-2.0 powershell-3.0