2
@ECHO OFF

SET filename=autoexec.bat

FOR /R C:\ %%a IN (\) DO (
   IF EXIST "%%a\%filename%" (

      SET fullpath=%%a%filename%
      GOTO break
   )
)
:break

ECHO %fullpath%

Will give me a path with \\ in between. How to come up with only \ in between?

asp
  • 649
  • 1
  • 6
  • 10

2 Answers2

1
set filename=autoexec.bat
for /f %%i in ('dir \*%filename% /b /s') do set fullpath=%%i
cure
  • 2,588
  • 1
  • 17
  • 25
0

It's because you are doing:

FOR /R C:\ %%a IN (\) DO ...

Try instead, replacing the \ with *;

FOR /R C:\ %%a IN (*) DO ...

The value in the brackets is the file set that you want to loop through, an asterisk specifies ALL.

unclemeat
  • 5,029
  • 5
  • 28
  • 52