我想知道如何使用批处理文件更改为包含特定文件名的目录。首先,我想使用dir
命令搜索特定文件。我知道只会找到一个文件。然后我想cd
到包含该文件的目录。有什么建议吗?
答案 0 :(得分:2)
如果您只搜索文件名(编辑:但仅当搜索使用通配符时),这应该有效:
for /R %%i in ("myfile.*") do cd "%%~dpi"
(如果从命令行而不是批处理文件中运行,则将%%
替换为%
。)
如果搜索不使用通配符,您可以这样做:
for /R %%i in (.) if exist "%%i\myfile.txt" do cd "%%i"
如果您需要使用dir
命令,例如,只选择只读文件,则这是另一种选择:
for /F "usebackq tokens=*" %%i in (`dir /s /b /ar "readonly.txt"`) do cd "%%~dpi"