If your batch file contains a FOR command that is parsing a DIR /S command, such as:
for /f "Tokens=*" %%a in ('dir c:\ /b /s') do @echo %%a
the command may appear hang before returning any output.
The entire directory structure is parsed before the first line of output is returned.
To demonstrate this behavior, open a CMD prompt and type:
for /f "Tokens=*" %a in ('dir %systemroot% /b') do @echo %a
The output should be promptly returned. Now add the /S parameter by typing:
for /f "Tokens=*" %a in ('dir %systemroot% /b /s') do @echo %a
Notice the sizeable delay.
NOTE: The FOR command will exhibit this same behavior when processing the contents of a large file.
0 comments
Hide comments