如何在PowerShell中访问路径含未知文件夹的文件?
解决方法:通过通配符定位文件后读取字节
问题根源:.NET的
[System.IO.File]::ReadAllBytes()不支持带通配符的路径,必须传入精确的文件路径才能正常调用。基础解决方案:
- 先用PowerShell的
Get-ChildItem命令定位file1.txt的实际路径,该命令原生支持通配符匹配:# 查找C盘根目录下所有子文件夹中的file1.txt,返回文件对象 $targetFile = Get-ChildItem -Path 'C:\*\file1.txt' -ErrorAction SilentlyContinue - 判断是否找到文件,再调用
ReadAllBytes读取字节:if ($targetFile) { # 若找到多个同名文件,此处取第一个;需处理全部则改用循环 $fileBytes = [System.IO.File]::ReadAllBytes($targetFile[0].FullName) # 可在此添加对字节数据的后续处理逻辑 } else { Write-Host "未找到目标文件file1.txt" }
- 先用PowerShell的
多文件场景处理:如果C盘下存在多个包含
file1.txt的子文件夹,可通过循环逐个读取:$allTargetFiles = Get-ChildItem -Path 'C:\*\file1.txt' -ErrorAction SilentlyContinue foreach ($file in $allTargetFiles) { $fileBytes = [System.IO.File]::ReadAllBytes($file.FullName) # 对当前文件的字节数据进行处理 Write-Host "已读取文件:$($file.FullName)" }
内容的提问来源于stack exchange,提问作者Sabrebar
相关产品推荐
相关产品推荐

