FOR loop Batch help!

Hiya :slight_smile: i was just wondering if theres someone with good knowledge of windows batch out there, whos willing to help me?

For university iv been required to create a windows batch script which will help an admin. So far I’ve done add/remove/edit user, backup, system info etc however my tutor has advised me to create a FOR loop on add user. Atm the admin will manually enter each user name and password however i want to run a loop which will read an existing text file and automatically create the accounts.

I understand that the structure of a loop is FOR %A IN (list) DO command parameters and so far i have come up with “for %%a in (users.txt) do [net user /add]” something such as this but obviously its not working.

Do i have to declare users.txt and insert it between net user and /add? Or is this completely wrong? Iv been trying to figure this out for days and there isn’t much material to go on. Thanks in advanced for any help given, its much appreciated!

This might help a little: http://www.robvanderwoude.com/for.php

If you want to go line by line, this would work for reading the text file:

FOR /f %%a in (users.txt) DO (
ECHO %%a
)

If the users are delimited with commas, you will have to do this:


@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

FOR /f "tokens=1,2,3,4 delims=," %%a IN (users.txt) DO ( 
    SET user=%user%%%a
    SET firstname=%firstname%%%b
    SET lastname=%lastname%%%c
    SET group=%group%%%d
    
    REM -- echo the variable names like this:
    ECHO !user! - !firstname! - !lastname! - !group!
    
    REM -- or the tokens like this:
    ECHO %%a - %%b - %%c - %%d
)


ENDLOCAL

PAUSE

Contents of users.txt delimited with commas:

roberts, robert, smith, users
janej, jane, jones, administrators
samanthar, sam, richardson, users
peterc, peter, cottontail, administrators

Resources:
http://www.robvanderwoude.com/variableexpansion.php
http://blog.crankybit.com/why-that-batch-for-loop-isnt-working/