List files with path using Windows command line

My folder structure in a drive is like this (in Windows):

Folder 1
 Fd1
 Fd2
 Fd3
 Fd4
 Fd5
Folder 2
 Fd1
 Fd2
 Fd3
 Fd4
 Fd5

This arrangement continues for 100s of folders. Inside Fd1 of each Folder x there are certain .bat files. I am looking for a way to extract a list of .bat files with entire path using Windows command line to a text file. With little experience of using command prompt I am clueless of how this can be achieved.

I want the output to be a list like this:

............
D:\Folder 1\Fd1\one.bat
D:\Folder 2\Fd2\two.bat
............

Can someone help me?


Solution 1:

If I understand what you are looking for try

dir/s/b *.bat

If that works then redirect it into a text file....

dir/s/b *.bat > textfile.txt

You may also find it useful to have a list of command line switches for the DIR command.

Solution 2:

I'd suggest using the FOR command with the /R switch.

For example, to find all files in and under the current directory, use:

for /r %i in (*) do @echo %i

To start searching from an arbitrary directory, use this form of the command:

for /r "C:\TMP" %i in (*) do @echo %i

And lastly, to look for all batch files under the c:\bin directory, you could do this:

for /r "c:\bin" %i in (*.bat) do @echo %i

One point I should make, however, is that if you are using this command in a batch file, you will need to double the % signs, so these examples will become:

for /r %%i in (*) do @echo %%i
for /r "C:\TMP" %%i in (*) do @echo %%i
for /r "c:\bin" %%i in (*.bat) do @echo %%i

The use of i as the variable here is completely arbitary, and was first implanted in me in my FORTRAN days.