8

嗨,我正在努力解决以下问题 - 假设我有以下目录结构 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 文件夹。我已经尝试了这么多的参数变化 - 我怎样才能完成我想要做的事情?

4

2 回答 2

8

看一下get-childitem命令。您可以在管道中使用它来复制或删除根文件夹下的所有项目:

# 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 
}
于 2012-07-19T16:38:35.170 回答
5
    Copy-Item C:\Temp\Test1\* C:\Temp\Test2
    Remove-Item "C:\Temp\Test2\*" -recurse

也有效:)

于 2013-07-19T10:32:35.090 回答