Find file and return full path using a batch file

batch-file, directory, file, windows

Solution

for /r C:\folder %%a in (*) do if "%%~nxa"=="file.txt" set p=%%~dpnxa
if defined p (
echo %p%
) else (
echo File not found
)

If the file you searched for was found it will set the variable `%p%` to the full path of the file including name and extension.

If you just want the path (as in the folder path without the file) then use `set p=%%~dpa` instead.

Note: If there is more than 1 file with the same name then the variable will be set to the last one found. Also the script after the `for` loop line isn't really necessary, just to show you if it found anything :)

If you want to do it using the `dir` command then use this, same rules apply

for /f "tokens=*" %%a in ('dir acad.exe /b /s') do set p=%%a

Problem

Is it possible to create a batch file that searches for a file name, then returns its path so I can use it in a variable?

Original source

Related problems