Powershell如何复制整个文件夹结构但排除一个文件夹及其内容
How can Powershell copy an entire folder structure but exclude one folder and its contents
这似乎是一个简单的操作,但我无法弄清楚如何让 Powershell 将整个文件夹结构从一个位置复制到另一个位置但排除一个文件夹(名为 'connections')及其内容。
我试过像这样组合 Copy-Item 和 Get-ChildItem
cpi (gci folder1 -Exclude connections) folder2 -recurse
但似乎 -recurse 参数覆盖了 -exclude 参数并且复制了连接文件夹及其内容。如果没有 -recurse,我想要复制的文件夹的内容将被忽略。
我不确定为什么它不起作用,它似乎在我的机器上运行正常。
你总是可以通过管道传输到 Copy-Item
:
Get-ChildItem folder1 | where { !(($_ -is [System.IO.DirectoryInfo]) -and ($_.Name -eq "connections")) } | Copy-Item -Destination folder2 -Recurse
这样做的好处是您可以让 PowerShell 在之后打印输出:
Get-ChildItem folder1 | where { !(($_ -is [System.IO.DirectoryInfo]) -and ($_.Name -eq "connections")) }
这样您就可以准确检查复制的内容(即 "connections" 文件夹是否丢失?)
这似乎是一个简单的操作,但我无法弄清楚如何让 Powershell 将整个文件夹结构从一个位置复制到另一个位置但排除一个文件夹(名为 'connections')及其内容。
我试过像这样组合 Copy-Item 和 Get-ChildItem
cpi (gci folder1 -Exclude connections) folder2 -recurse
但似乎 -recurse 参数覆盖了 -exclude 参数并且复制了连接文件夹及其内容。如果没有 -recurse,我想要复制的文件夹的内容将被忽略。
我不确定为什么它不起作用,它似乎在我的机器上运行正常。
你总是可以通过管道传输到 Copy-Item
:
Get-ChildItem folder1 | where { !(($_ -is [System.IO.DirectoryInfo]) -and ($_.Name -eq "connections")) } | Copy-Item -Destination folder2 -Recurse
这样做的好处是您可以让 PowerShell 在之后打印输出:
Get-ChildItem folder1 | where { !(($_ -is [System.IO.DirectoryInfo]) -and ($_.Name -eq "connections")) }
这样您就可以准确检查复制的内容(即 "connections" 文件夹是否丢失?)