如何在Get-ChildItem中使用带通配符的-Exclude参数排除文件
使用PowerShell的Get-ChildItem排除名称包含指定关键词的文件
要实现排除所有名称中包含任一指定关键词的文件,核心是给每个排除关键词前后加上通配符*,再将处理后的规则传入-Exclude参数,具体步骤如下:
定义排除关键词列表
先把你要排除的关键词存进数组,比如:$excludeKeywords = @("temp", "log", "backup")转换为通配符匹配规则
因为-Exclude默认是按通配符匹配完整的文件名(或路径段),直接传关键词只会排除名称完全等于关键词的文件。要匹配“包含”关键词的文件,需要给每个关键词前后加上*:$excludePatterns = $excludeKeywords | ForEach-Object { "*$_*" }转换后
$excludePatterns会变成@("*temp*", "*log*", "*backup*")。执行Get-ChildItem筛选
把处理好的规则传入-Exclude即可:# 替换为你的目标路径 Get-ChildItem -Path "C:\Your\Target\Folder" -File -Exclude $excludePatterns
补充说明
- 如果需要递归遍历子目录,加上
-Recurse参数:Get-ChildItem -Path "C:\Your\Target\Folder" -File -Recurse -Exclude $excludePatterns - 如果要同时排除目录,去掉
-File参数(默认会匹配文件和目录)。
内容的提问来源于stack exchange,提问作者Maciaz99
相关产品推荐
相关产品推荐

