Flow control in a batch file
Posted
by dboarman-FissureStudios
on Stack Overflow
See other posts from Stack Overflow
or by dboarman-FissureStudios
Published on 2010-04-28T17:28:23Z
Indexed on
2010/04/29
22:47 UTC
Read the original article
Hit count: 480
Reference Iterating arrays in a batch file
I have the following:
for /f "tokens=1" %%Q in ('query termserver') do (
if not ERRORLEVEL (
echo Checking %%Q
for /f "tokens=1" %%U in ('query user %UserID% /server:%%Q') do (echo %%Q)
)
)
When running query termserver
from the command line, the first two lines are:
Known
-------------------------
...followed by the list of terminal servers. However, I do not want to include these as part of the query user
command. Also, there are about 4 servers I do not wish to include. When I supply UserID
with this code, the program is promptly exiting. I know it has something to do with the if
statement. Is this not possible to nest flow control inside the for-loop?
I had tried setting a variable to exactly the names of the servers I wanted to check, but the iteration would end on the first server:
set TermServers=Server1.Server2.Server3.Server7.Server8.Server10
for /f "tokens=2 delims=.=" %%Q in ('set TermServers') do (
echo Checking %%Q
for /f "tokens=1" %%U in ('query user %UserID% /server:%%Q') do (echo %%Q)
)
I would prefer this second example over the first if nothing else for cleanliness.
Any help regarding either of these issues would be greatly appreciated.
© Stack Overflow or respective owner