if 'x' and 'y' do 'z' - What am I doing wrong?

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Message
Author
Geertje123
Posts: 4
Joined: 15 Aug 2012 03:54

if 'x' and 'y' do 'z' - What am I doing wrong?

#1 Post by Geertje123 » 15 Aug 2012 08:38

Hi guys,

I can't seem to solve this problem on my own. Every time I run it and I press '1' and 'Enter' the cmd screen just disappears (Most of the times that happens when there is an error). I think the error is somewhere in here: if %ervaring% geq 0 & lss 100 set level=1. What am I doing wrong? Please take a look at my code:

Code: Select all

set /p menu=Optie: 
if %menu% == 1 goto voorstatus

:voorstatus
cls
echo ---- Status ----
if %ervaring% geq 0 & lss 100 set level=1
if %ervaring% geq 100 & lss 250 set level=2
if %ervaring% geq 250 & lss 500 set level=3
if %ervaring% geq 500 & lss 750 set level=4
if %ervaring% geq 750 & lss 1000 set level=5
if %ervaring% geq 1000 & lss 1250 set level=6
if %ervaring% geq 1250 & lss 1500 set level=7
if %ervaring% geq 1500 & lss 1750 set level=8
if %ervaring% geq 1750 & lss 2000 set level=9
if %ervaring% geq 2000 & lss 2500 set level=10
if %ervaring% geq 2500 & lss 3000 set level=11
if %ervaring% geq 3000 & lss 3750 set level=12
goto status

:status
cls
echo ---- Status ----


Thanks,
Geertje123

Squashman
Expert
Posts: 4488
Joined: 23 Dec 2011 13:59

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#2 Post by Squashman » 15 Aug 2012 08:46

if %ervaring% geq 0 IF %ervaring% lss 100 set level=1

Geertje123
Posts: 4
Joined: 15 Aug 2012 03:54

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#3 Post by Geertje123 » 15 Aug 2012 08:49

Squashman wrote:if %ervaring% geq 0 IF %ervaring% lss 100 set level=1


Thank you very much, it worked ;)
But I still don't get why you don't have to use the '&'...

Squashman
Expert
Posts: 4488
Joined: 23 Dec 2011 13:59

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#4 Post by Squashman » 15 Aug 2012 08:51

The ampersand is used to process another command after the first one is done executing. Everything after the ampersand needs to be a valid command. LSS is not a valid command.

Ed Dyreen
Expert
Posts: 1569
Joined: 16 May 2011 08:21
Location: Flanders(Belgium)
Contact:

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#5 Post by Ed Dyreen » 15 Aug 2012 09:26

'
Hey geertje, you've got a lot of redundant code in there :)

Code: Select all

set /p menu=Optie:
if %menu% == 1 goto voorstatus

:voorstatus
cls
echo ---- Status ----

if not defined ervaring set /a ervaring = 0

set /a level = -1 &for %%? in (

       1, 100, 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3750

) do   if %ervaring% lss %%~? (

       set /a level += 1
)
goto status

:status
cls
echo ---- Status ----


Groetjes
ED

Geertje123
Posts: 4
Joined: 15 Aug 2012 03:54

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#6 Post by Geertje123 » 15 Aug 2012 09:42

Ed Dyreen wrote:'
Hey geertje, you've got a lot of redundant code in there :)

Code: Select all

set /p menu=Optie:
if %menu% == 1 goto voorstatus

:voorstatus
cls
echo ---- Status ----

if not defined ervaring set /a ervaring = 0

set /a level = -1 &for %%? in (

       1, 100, 250, 500, 750, 1000, 1250, 1500, 1750, 2000, 2500, 3000, 3750

) do   if %ervaring% lss %%~? (

       set /a level += 1
)
goto status

:status
cls
echo ---- Status ----


Groetjes
ED


Dat ziet er goed uit. Alleen begin je nu op level 12 en als ik 20 ervaring heb wordt ik level 11 :S

Ed Dyreen
Expert
Posts: 1569
Joined: 16 May 2011 08:21
Location: Flanders(Belgium)
Contact:

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#7 Post by Ed Dyreen » 15 Aug 2012 09:56

:oops:

Code: Select all

set /p menu=Optie:
if %menu% == 1 goto voorstatus

:voorstatus
cls
echo ---- Status ----

if not defined ervaring set /a ervaring = 0

set /a level = 0 &for %%? in (

       0, 99, 249, 499, 749, 999, 1249, 1499, 1749, 1999, 2499, 2999, 3749

) do   if %ervaring% gtr %%~? (

       set /a level += 1
)
goto status

:status
cls
echo ---- Status ----

Geertje123
Posts: 4
Joined: 15 Aug 2012 03:54

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#8 Post by Geertje123 » 15 Aug 2012 10:28

Ed Dyreen wrote::oops:

Code: Select all

set /p menu=Optie:
if %menu% == 1 goto voorstatus

:voorstatus
cls
echo ---- Status ----

if not defined ervaring set /a ervaring = 0

set /a level = 0 &for %%? in (

       0, 99, 249, 499, 749, 999, 1249, 1499, 1749, 1999, 2499, 2999, 3749

) do   if %ervaring% gtr %%~? (

       set /a level += 1
)
goto status

:status
cls
echo ---- Status ----


Helemaal top! Werkt prima! Wil je versie 0.3 van het spel zien waar dit in zit? http://www.mediafire.com/?25lunvyq56tggtu. Het spel werkt al redelijk goed, maar ik ga er nog veel meer aan toevoegen natuurlijk. dit is alleen de basis. ps. Fabrieken werken niet omdat ik die nog niet gemaakt heb. De ping berichten bij het opslaan zijn vor het vertragen. als het te snel gaat vangt het bestand de helft van de tekst die in zeg datie erin moet zetten niet op.
Ik ben nog maar een beginnende programmeur en batch/dos is een simpele taal om mee te beginnen ;)

Ed Dyreen
Expert
Posts: 1569
Joined: 16 May 2011 08:21
Location: Flanders(Belgium)
Contact:

Re: if 'x' and 'y' do 'z' - What am I doing wrong?

#9 Post by Ed Dyreen » 15 Aug 2012 10:47

'
I've downloaded it and it works, so far :wink:

Post Reply