Question

I have a TXT file with a list of names like:

Test
Word
etc.

I need to search ( recursive, so also in subfolder ) if one of that name match with a file. This is my attempt:

@echo off

Set MyPath=C:\Folder

for /f %%i in (list.txt) do (
echo File with word %%i: >> result.txt
echo. >> result.txt
findstr /M /C:%%i /S "%MyPath%\*.*" >> result.txt
echo. >> result.txt
)

The result.txt i want is:

File with word test: 

C:\Folder\test.exe
C:\Folder\my test.txt
C:\Folder\another test.doc
C:\Folder\tatest.bat

File with word Word: 

C:\Folder\This is my word.exe
C:\Folder\CoolWord.txt
C:\Folder\hello word.bat

So how to improve that batch and make it recursive also for the subfolder of the initial dir?

Thanks

Was it helpful?

Solution

Test this: It will write result.txt with the results for each word.

@echo off
(
for /f "usebackq delims=" %%a in ("list.txt") do (
   echo "File with word %%a:"
   echo.
   set "flag="
      for /r "c:\folder" %%b in ("*%%a*") do (echo %%b&set flag=1)
   if not defined flag echo No Matches
   echo.
   )
)>"result.txt"

OTHER TIPS

dir /s /b C:\Folder\*.* >allfiles.txt 
for /f %%i in (list.txt) do (
  echo File with word %%i: >> result.txt
  echo. >> result.txt
  findstr /M /C:%%i /S "allfiles.txt" >> result.txt
  echo. >> result.txt
)
@echo off

Set MyPath=C:\Folder

(for /f "delims=" %%i in (list.txt) do (
   echo File with word %%i:
   echo/
   dir /B /S "%MyPath%\*%%i*"
   echo/
)) > result.txt
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top