Powershell递归复制,排除目录中找到的文件除外

Powershell递归复制,排除目录中找到的文件除外,powershell,Powershell,您好,我有一个名为a的文件夹,文件夹a中有文件和子文件夹。我还有另一个名为Exclusion的文件夹目录,其中包含一些从中复制的文件和文件夹。我正在寻找一个Powershell脚本或命令行选项,它将从排除目录中找不到的所有对象复制并移动到名为Output的新文件夹目录 谢谢, -B使用Get ChildItem获取排除目录中的文件列表,然后仅获取文件名并将其保存在数组中 可以选择使用带有-Force参数的New Item,以确保在将文件发送到输出目录之前存在输出目录 接下来,使用Get Chil

您好,我有一个名为a的文件夹,文件夹a中有文件和子文件夹。我还有另一个名为Exclusion的文件夹目录,其中包含一些从中复制的文件和文件夹。我正在寻找一个Powershell脚本或命令行选项,它将从排除目录中找不到的所有对象复制并移动到名为Output的新文件夹目录

谢谢, -B

使用Get ChildItem获取排除目录中的文件列表,然后仅获取文件名并将其保存在数组中

可以选择使用带有-Force参数的New Item,以确保在将文件发送到输出目录之前存在输出目录

接下来,使用Get ChildItem遍历源A目录中的所有文件,使用Where对象和-notin运算符排除与从排除目录中收集的文件同名的任何文件,然后使用Move Item将文件移动到目标输出目录

[string[]]$filenamesToExclude = Get-ChildItem -Path 'c:\somewhere\exclusion' -Recurse | Select-Object -ExpandProperty Name
New-Item -Path 'c:\somewhere\output\' -ItemType 'Directory' -Force | Out-Null #ensure the target directory exists / don't output this command's return value to the pipeline
Get-ChildItem -Path 'c:\somewhere\A' -Recurse | Where-Object {$_.Name -notin $filenamesToExclude} | Move-Item -Destination 'c:\somewhere\output\'

嗨,约翰,我刚才正在本地测试。谢谢你的快速回复。代码看起来很棒,而且信息量很大。