Powershell 是否仅复制项目/删除项目子内容而不复制根文件夹?

Powershell 是否仅复制项目/删除项目子内容而不复制根文件夹?,powershell,powershell-2.0,powershell-ise,Powershell,Powershell 2.0,Powershell Ise,您好,我正在努力解决以下问题-假设我有以下目录结构C:\Temp\Test1和C:\Temp\Test2 我想做的是递归地将C:\Temp\Test1的子内容复制到C:\Temp\Test2,而不复制实际的文件夹C:\Temp\Test1..,如果我使用命令 Copy-Item C:\Temp\Test1 C:\Temp\Test2 -Recurse 将导致C:\Temp\Test2\Test1,并且似乎没有任何参数组合可以缓解此问题 类似地,当我希望删除C:\Temp\Test2中的所有子内

您好,我正在努力解决以下问题-假设我有以下目录结构C:\Temp\Test1和C:\Temp\Test2

我想做的是递归地将C:\Temp\Test1的子内容复制到C:\Temp\Test2,而不复制实际的文件夹C:\Temp\Test1..,如果我使用命令

Copy-Item C:\Temp\Test1 C:\Temp\Test2 -Recurse
将导致C:\Temp\Test2\Test1,并且似乎没有任何参数组合可以缓解此问题

类似地,当我希望删除C:\Temp\Test2中的所有子内容时,我只希望删除子内容,而不是实际的文件夹

Remove-Item C:\Temp\Test2\ -Recurse
正在删除\Test2文件夹。我已经尝试了这么多不同的参数-我如何才能完成我要做的事情?

看看这个命令。您可以在管道中使用此选项复制或删除根文件夹下的所有项目:

# recursively copy everything under C:\Temp\Test1 to C:\Temp\Test2
get-childitem "C:\Temp\Test1" | % { 
    copy-item $_.FullName -destination "C:\Temp\Test2\$_" -recurse 
}

# recursively remove everything under C:\Temp\Test1
get-childitem "C:\Temp\Test1" -recurse | % { 
    remove-item $_.FullName -recurse 
}

也可以工作:)

注意,您不需要将cmdlet调用包装在foreach(
…|%{cmdlet$979;.FullName…}
)中;和都将自动接受来自管道的输入。例如,第二个示例可以简化为
Get ChildItem“$env:temp\Test1”| Remove Item-Recurse
。复制项在Test1中保留(即使使用Recurse或容器)一个文件夹结构…@FalcoAlexander是对的,不要对这篇文章投反对票它是不对的
    Copy-Item C:\Temp\Test1\* C:\Temp\Test2
    Remove-Item "C:\Temp\Test2\*" -recurse