0

例如,我将提供一个文件名,并且我希望脚本在计算机中搜索该文件并返回变量的路径。伪调用是:

设置 pathToMyFile = SomeSearchFunction(myFileToSearchFor.ext)

谢谢

4

2 回答 2

2

dir /b /s "c:\myFileToSearchFor.ext"将列出 C: 驱动器中文件的每一次出现,包括完整的路径信息。

该文件可能存在于多个位置。

此批处理命令会将变量设置为最后找到的位置:

for /f "delims=" %%F in ('dir /b /s "c:\myFileToSearchFor.ext"') do set "pathToMyFile=%%~dpF"

此批处理脚本会将变量设置为第一个找到的位置:

for /f "delims=" %%F in ('dir /b /s "c:\myFileToSearchFor.ext"') do (
  set "pathToMyFile=%%~dpF"
  goto :foundIt
)
:foundIt
于 2012-04-09T21:03:05.557 回答
0

据我所知,没有任何功能/程序可以执行此操作。如果您需要效率,您可以编写一个程序,对所有目录进行花哨的树搜索。但是,我确实找到了批量解决方案!

@echo off
for /r "C:\somebasepath" %%i in (*) do (
if "%%~nxi" EQU "%1" (
echo %%i
break
)
)

将要找到的文件作为第一个参数传递给批处理文件。但是如果它在一个很深的目录中,这是非常非常慢的。

于 2012-04-09T21:07:29.863 回答