You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未知文件夹全名时如何查找含指定关键词的文件夹路径并存入变量

匹配含指定关键词子文件夹并存入变量的实现方案

你已知根目录路径,且确认根目录下有且仅有一个名称包含latest的子文件夹,可根据你使用的终端环境选择对应命令,直接将目标完整路径存入变量:

Windows 命令提示符(CMD)

最简写法(适配单匹配场景)

因为你已经确认只有一个符合条件的文件夹,直接用通配符赋值即可:

set "TARGET_DIR=C:\Users\Me\Project\*latest*"

严谨校验写法(避免匹配异常)

如果需要自动获取绝对路径、避免多匹配/无匹配的异常,可以用for循环遍历匹配:

:: 脚本中使用的写法
set "SEARCH_ROOT=C:\Users\Me\Project"
set "TARGET_DIR="
for /d %%i in ("%SEARCH_ROOT%\*latest*") do set "TARGET_DIR=%%~fi"
:: 校验是否匹配成功
if not defined TARGET_DIR (echo 未找到名称含latest的目标文件夹 & exit /b 1)

如果是直接在CMD交互窗口手动输入执行,不是写在.bat/.cmd脚本里,把命令里的%%i、%%~fi替换为%i、%~fi即可。
其中%%~fi是CMD的内置语法,会自动提取匹配项的完整绝对路径。

PowerShell

PowerShell 下推荐用原生文件查找命令,精准限定只匹配文件夹,避免通配符匹配到同名文件:

$searchRoot = "C:\Users\Me\Project"
# 查找根目录下名称带latest的第一个文件夹,取完整路径存入变量
$targetDir = Get-ChildItem -Path $searchRoot -Directory -Filter "*latest*" | 
    Select-Object -First 1 -ExpandProperty FullName
# 校验匹配结果
if (-not $targetDir) { Write-Error "未找到名称含latest的目标文件夹"; exit 1 }

参数说明:

  • -Directory:限定只查找文件夹,排除同名文件
  • -Filter "*latest*":筛选名称包含latest的项
  • -ExpandProperty FullName:直接输出匹配项的完整绝对路径

类Unix Shell(Git Bash/WSL/Linux/macOS 终端)

如果是在类Unix shell环境下操作,用find命令精准匹配直接子文件夹即可:

SEARCH_ROOT="/c/Users/Me/Project"
# 查找根目录下名称带latest的第一个直接子文件夹,完整路径存入变量
TARGET_DIR=$(find "$SEARCH_ROOT" -maxdepth 1 -type d -name "*latest*" -print -quit)
# 校验匹配结果
if [ -z "$TARGET_DIR" ]; then echo "未找到名称含latest的目标文件夹" >&2; exit 1; fi

参数说明:

  • -maxdepth 1:限定只查找根目录下的直接子项,不会递归遍历深层目录
  • -type d:限定只匹配文件夹
  • -print -quit:找到第一个匹配项就直接输出结果并退出查找,执行效率更高

内容的提问来源于stack exchange,提问作者Peter2223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:27:21