MSDOS iterating filenames in a file
In an earlier post I covered finding the writable files in a directory, which is something you often need to do when messing around with source control. For example, if there's a writable file in your source folder that isn't checked out, then you know you need to add it before checking in. In fact I have a tool that compares my changelist with the list of writable files, and lets me know if I'm about to break the build when I check in.
Anyway I digress. Once you have found the writable files using:
dir source_folder /a-r-d /s /b > files.txt
then you may want to run some operation on them; for example make them read only.
Here's how to do that with the windows for command (see here for documentation)
for /F %i in (files.txt) do attrib -R %i
The for command with the /F option can iterate through a file full of filenames, which is what we generated with the first command, and run the operation after the do instruction.
It's actually quite powerful; you can specify comment markers, delimiters, and choose which of a number of columns you want to make into variables.