I have a simple batch script that recursively looks at all files and folders within the directory and writes out the file inventory to a text file. It currently looks like this:

dir /b/s > files.txt

The /b means don't give any extra info and /s makes it recursive within sub-folders. The sample output is:


I'd like two things:

  1. Only list out files in this listing rather than files and folders
  2. I'd like the paths to be relative from where the batch script was called

E.g. I have the script in the C:\Users\mark\Desktop\site\site\ folder so I don't want to see up to that point.

Is it possible to do those two things and if so, can anyone help with either?


dir /b /s /a-d will get you files only. I think for relative paths you're going to need to do some more work than just a simple batch file, e.g. call some vbscript to (1) get the current directory, (2) open the text file, (3) do a search and replace on the text file, and (4) save the result back.

  • Thanks for the info on the extra flag! Worked perfectly. I agree about the path thing and I don't think I'll really be able to do it. I might look for some sort of batch script RegEx for a replace. – Mark Nov 23 '09 at 16:20

You can grab the unxutils suite, drop find.exe in your starting directory then launch it with something like:

./find.exe . -type f > result.txt

Just my 2cts.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.