magicbennie
magicbennie

Reputation: 523

Search specified directory and output location of item(s) if found

Like the title says, I would like to know how to search a specified directory for a specified file using a for loop in a windows batch script. I can't use any 3rd party software.

Heres what I have at the moment:

for /R "%loc%" %%f in ("%searchterm%") do (
echo %%f
echo %%f>> "%genloc%wefound.txt"
)

%loc% is the location in which it should search.

%searchterm% is the file (e.g "hello.txt") that the script much search for.

It must output any files found (including their full path) on the screen and into the wefound.txt.

Let me know if you need more detail.

Upvotes: 0

Views: 65

Answers (3)

dbenham
dbenham

Reputation: 130839

Why complicate things with FOR? All you need is the DIR command:

dir /s /b /a-d "%loc%\%searchterm%>"%genloc%wefound.txt"&type "%genloc%wefound.txt"

The solution is even better if you can get your hands on a Windows port of the tee command (there are numerous free versions available). You could use my hybrid JScript/batch implementation of tee

dir /s /b /a-d "%loc%\%searchterm%"|tee "%genloc%wefound.txt"

Upvotes: 0

Aacini
Aacini

Reputation: 67216

for /R "%loc%" %%f in ("%searchterm%") do (
   echo %%~Ff
   echo %%~Ff>> "%genloc%wefound.txt"
)

For further details, type: FOR /?

Upvotes: 0

MC ND
MC ND

Reputation: 70933

for /f "delims=" %%f in ('dir /s /b /a-d "%loc%\%searchterm%"') do (
    echo %%f
    echo %%f>> "%genloc%wefound.txt"
)

To get the for /r command recursively enumerate the files under a starting point, the file set must include some wildcard character (* or ?). As you know the exact filename, let the dir command do the work of searching the file.

Upvotes: 1

Related Questions