Question

I have a folder structure like this:

  • c:/foo/bar1/a002345.vi
  • c:/foo/bar1/somefilename.vi
  • c:/foo/bar2/b005632.vi
  • ...
  • c:/foo/bar26/z002345.vi

Now I want to execute a batch file in the folder c:/foo/ which writes the following output to a .txt file:

@@/bar1/a002345.vi
@@/bar2/b005632.vi
@@/bar26/z002345.vi

(Without somefile.vi) What's the most elegant way to do this?

Was it helpful?

Solution

Could you please specify how you will differentiate "somefile.vi", does it not contain any numbers, or do you know its individual name?

If it is the latter, I believe this should work if run from the C:\foo folder

for /r %%a in (*) do (if %%~na NEQ somefile echo %%~pa%%~na%%~xa >> output.txt)

Note instead of "@@\bar..." you will get "\foo\bar..." If there are multiple files you want to exclude simple nest more if commands:

for /r %%a in (*) do (if %%~na NEQ somefile1 if %%~na NEQ somefile2 if %%~na NEQ somefile3 echo %%~pa%%~na%%~xa >> output.txt)

And so on.... I've tried this on my computer and it worked fine.

Yours, Mona

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top