如何用单条PowerShell命令复制文件夹并排除指定子文件夹
单条PowerShell命令实现复制文件夹并排除指定子文件夹
可以用一条命令实现需求,核心是先筛选出需要保留的内容,再批量复制到目标目录并维持原结构:
Get-ChildItem -Path "C:\docs1\article-title-master" -Recurse -Exclude "master" | Where-Object { $_.FullName -notmatch "\\master\\" } | Copy-Item -Destination { $_.FullName -replace "^C:\\docs1\\article-title-master", "C:\\docs2\\articles\\new-article-title" } -Force
命令拆解:
Get-ChildItem -Recurse -Exclude "master":递归获取源目录下所有文件和文件夹,先排除名称为master的顶层项Where-Object { $_.FullName -notmatch "\\master\\" }:进一步过滤掉路径中包含\master\的内容,确保master文件夹及其内部所有子项都被彻底排除Copy-Item -Destination { ... }:通过脚本块替换源路径前缀为目标目录路径,保证复制后保留原有的子目录层级
如果你的master文件夹仅存在于那3个子文件夹下,也可以把过滤条件简化为Where-Object { $_.Parent.Name -ne "master" },但上述正则匹配的方式更通用,能覆盖所有层级的master文件夹。
内容的提问来源于stack exchange,提问作者rocco
相关产品推荐
相关产品推荐

