首页 > 解决方案 > cd 进入与 dir 一起使用的找到文件的目录

问题描述

我的 CMD 脚本需要一些帮助。目前我正在做的是搜索一个特定的文件:

cd ../cache
dir /s "filename.exe

当 CMD 找到该文件时,它会输出:

"C:Windows\system32\cache\folder\thefileImlookingfor 目录"

在 CMD 找到该文件之后,我现在想做的是“cd”到我找到该文件的那个目录中。但是,此实例中刚刚称为文件夹的文件夹会不时更改名称。但这无关紧要,因为文件名仍然相同。那么我怎样才能“cd”到我找到的文件名的目录呢?

标签: batch-filecmd

解决方案


你需要一个for循环:

@echo off
for /f "delims=" %%i in ('dir /b /a-d /s "filename.exe"') do cd /d "%%~dpi"

或者使用pushd

@echo off
for /f "delims=" %%i in ('dir /b /a-d /s "filename.exe"') do pushd "%%~dpi"
echo do some things here..
popd

为了更好地理解这里发生了什么,打开cmd并运行for /?. 特别关注for变量引用的替换


推荐阅读