Batchscript SET en FOR met variabelen

Status
Niet open voor verdere reacties.

lbradio

Gebruiker
Lid geworden
28 feb 2007
Berichten
35
Ik heb in een script een aantal gebruikersnamen vastgelegd met het SET commando.
Het aantal gebruikers, danwel de namen wijzigt nogal eens.

set user1=kees
set user2=klaas
set user3=piet
set user4=geert

Vandaar dat ik wil laten controleren of user1 bestaat, indien dit het geval is wordt er een commando uitgevoerd en moet er gecontroleerd worden of user2 bestaat. Zo ja, hetzelfde commando en terug naar de loop voor de volgende user. Zo nee, wordt de loop afgesloten.

De variabele user moet automatisch met 1 opgehoogd worden.

Is er iets te bereiken met het FOR commando?

Iemand enig idee?
 
als jij op de manier die je beschrijft de users hebt ge-Set dan weet je toch dat ze gevuld zijn?

maar doormiddel van het if commando kan dat. zo uit mijn hoofd:

if user1 == "" then goto loop

Kijk dus gewoon of de variabele bestaat

Hoe je dat kan laten ophogen durf ik zo 123 niet te zeggen
 
Hartelijk dank voor de snelle reactie.
Een teller is uiteraard zo gebouwd:

@echo off
SET USERCOUNTER=0
SET USER1=KEES
SET USER2=KLAAS
SET USER3=PIET
SET USER4=GEERT

:USERCOUNTERLOOP
SET /A USERCOUNTER = USERCOUNTER + 1

ECHO USERCOUNTER=%USERCOUNTER%
ECHO USERNAME=USER%USERCOUNTER%
PAUSE
GOTO USERCOUNTERLOOP

===
ECHO USER%USERCOUNTER% geeft keurig een oplopende reeks users weer, maar dan als tekst (user1, user2, user3 enz). Het lukt mij echter niet om de namen weer te geven ipv user1, user2 enz.
 
Laatst bewerkt:
dat klopt, want voor het weergeven zul je
ECHO %USER1%
moeten uitvoeren.

theoretisch zou je dus:

ECHO %USER%USERCODE%%

moeten uitvoeren maar dat gaat je niet lukken

Wat jij wil op deze manier is niet mogelijk, aangezien ik het doel van het script niet weet durf ik ook geen andere manier aan te geven. Waarschijnlijk zul je je toevlucht tot vbs moeten zoeken of de constructie anders bouwen
 
Klopt, ik heb inderdaad zoiets nodig als: ECHO %USER%USERCODE%% . Maar dat werkt dus niet.

Vandaar dat ik aan FOR zat te denken met een wildcard.

Iets in de trant van: FOR EACH %USER*% DO copy *.*
If errorlevel. . enz

Waarbij %USER*% dus %user1%, %user2% enz oproept.

Uiteraard klopt er geen moer van deze regel, maar het geeft wellicht weer wat ik wil. De bedoeling is dat bijvoorbeeld bestand kees.txt (=%user1%) en bestand klaas.txt (=%user2%) ergens naartoe verplaatst gaat worden.
 
Ik heb nog steeds met hetzelfde probleem te maken. Is er misschien iemand die weet hoe ik verder kan? Alvast bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan