查找文件夹内千余BAT文件指定文本时遇权限拒绝问题求助
解决Select-String搜索BAT文件时的权限拒绝问题
Select-String是支持直接指定文件夹路径的,你碰到的"Access Denied"主要是两个原因:要么是当前PowerShell进程没有访问C:\BAT目录的足够权限,要么是命令默认尝试遍历文件夹内所有类型文件,其中部分文件/子目录受系统权限保护。
给你几个可行的解决办法:
精准指定要搜索的BAT文件
直接限定只搜索BAT后缀的文件,避免触碰其他有权限限制的内容:Select-String -Path "C:\BAT\*.bat" -Pattern "Connect to"递归搜索子文件夹(如果需要)
要是C:\BAT还有子文件夹需要遍历,加上-Recurse参数:Select-String -Path "C:\BAT\*.bat" -Pattern "Connect to" -Recurse提升权限运行PowerShell
如果以上命令还是报错,右键点击PowerShell图标,选择「以管理员身份运行」,再执行命令,确保进程拥有足够的目录访问权限。只输出匹配的文件路径
要是你只想得到包含目标内容的文件路径,而非具体匹配行,可以用:Select-String -Path "C:\BAT\*.bat" -Pattern "Connect to" -List | Select-Object -Unique Path
内容的提问来源于stack exchange,提问作者Ajdin
相关产品推荐
相关产品推荐

