如何递归查找指定名称的目录并将完整路径写入文本文件
在C盘递归查找所有名为abc的目录并保存路径到文件
下面提供两种适用于Windows环境的解决方案:
方法1:使用CMD命令
命令方式一(结合dir与findstr)
dir C:\ /s /b /ad | findstr /e "\\abc" > paths.txt
参数说明:
dir C:\ /s /b /ad:递归遍历C盘所有目录,仅输出目录的完整路径(裸格式,无额外信息)findstr /e "\\abc":筛选路径以\abc结尾的结果,确保仅匹配名称恰好为abc的目录> paths.txt:将筛选后的结果写入当前目录下的paths.txt文件(若文件已存在则覆盖)
命令方式二(使用for循环)
(for /r C:\ %d in (.) do @if /i "%~nxd"=="abc" echo %~fd) > paths.txt
参数说明:
for /r C:\ %d in (.):递归遍历C盘下的所有目录,将每个目录路径赋值给变量%d@if /i "%~nxd"=="abc":忽略大小写判断当前目录的名称是否为abcecho %~fd:输出该目录的完整绝对路径- 外层括号包裹并通过
> paths.txt统一写入文件,避免多次IO操作
方法2:使用PowerShell命令
Get-ChildItem -Path C:\ -Directory -Recurse | Where-Object {$_.Name -eq "abc"} | Select-Object -ExpandProperty FullName | Out-File -FilePath ".\paths.txt" -Encoding UTF8
参数说明:
Get-ChildItem -Path C:\ -Directory -Recurse:递归获取C盘下的所有目录对象Where-Object {$_.Name -eq "abc"}:筛选名称恰好为abc的目录Select-Object -ExpandProperty FullName:提取目录的完整绝对路径Out-File -FilePath ".\paths.txt" -Encoding UTF8:将结果写入当前目录的paths.txt,并指定UTF8编码避免乱码
验证结果
针对你提供的示例目录结构,上述命令生成的paths.txt内容如下:
C:\abc C:\whatever\abc C:\whatever\abc\abc
内容的提问来源于stack exchange,提问作者Amrmsmb
相关产品推荐
相关产品推荐

