I have a windows batch file that does this:
for %%s in (*.sql) do call
It loops through all the sql script in a folder.
In the folder the file names are like:
s4.06.01.sql
s4.07.01.sql
s4.08.01.sql
s4.10.01.sql
s5.01.sql
But the for loop goes through the files randomly (not in the name order), it first run s5.01, then s4.06, then s4.08, then s4.10, then s4.07. How can I make them run in the name order?
It used to work, but now it doesn't. What may cause this problem?
Jerry's answer might very well be what is causing the problem.
You might solve it by changing
for %%s in (*.sql) do call
to
for %%s in (dir"*.sql ^| sort) do call
Edit cudo's to LonelyPixel
The posted solution does not work as is on a Windows 8 machine (perhaps it did back then with Windows XP but I have no idea).
Following is a working solution using Windows 8 command prompt.
for /f "tokens=*" %%s in ('dir /b *.sql ^| sort') do echo %%s