if statement in batch

Status
Niet open voor verdere reacties.

jantjuh

Gebruiker
Lid geworden
22 feb 2007
Berichten
89
ik heb een net messenger programma gemaakt voor in de klas.

dit is de werkende versie alleen die werk met gebruikers namen.
Code:
:messenger

CLS

@echo off

  color A
  title Netwerk Messenger

  echo Accounts:
    echo 56867 - Jan
    echo 56797 - Carlo
    echo 55644 - Mats
    echo 57237 - Sander
    echo 58664 - Bing
    echo 56694 - Jeff
    

  set /p msgto=leerlingnummer: 
  set /p msg=bericht: 

net send %msgto% "%msg%"

CLS

GOTO messenger

alleen wil ik nu dat je iemands naam uit het lijstje kan invoeren en dat hij het naar dat nummer stuurt dat kan met de if en elseif.
alleen werkt het niet.

Code:
@echo off

:TOP

CLS

  color A
  title Netwerk Messenger

  echo Accounts:
    echo 56867 - Jan
    echo 56797 - Carlo
    echo 55644 - Mats
    echo 57237 - Sander
    echo 58664 - Bing

  set /p msgto=leerlingnummer:
  set /p msg=bericht:

     IF (%msgto)==(jan) {
     net send 56867 "%msg%"
     }

     ELSEIF (%msgto)==(carlo) {
     net send 56797 "%msg%"
     }

     ELSEIF (%msgto)==(mats) {
     net send 55644 "%msg%"
     }

     ELSEIF (%msgto)==(sander) {
     net send 57237 "%msg%"
     }

     ELSEIF (%msgto)==(bing) {
     net send 58664 "%msg%"
     }
GOTO TOP

kan iemand me helpen?
 
ik heb geen idee maar heb een vraag die er wat op lijkt :D

ik wil naargelang een ingevoerede string een actie ondernemen (met if else), hoe doe ik dat?
 
als je ergens anders iets zou vinden, meld het me dan ff he :D doe ik ook wel als ik iets tegenkom :)
 
Een uitleg over een IF statment in een batch kan je vinden: hier
Is wel een engelse site.
 
Laatst bewerkt:
dat had ik al gevonde en toegepast maar ik snap nou nog steets nie hoe ze dit bedoelen?

Code:
     IF (%1)==() GOTO END
     ECHO Value is "%1" and still running...
     SHIFT

is het dan dat als de waarde goed is dat hij dan naar :END moet gaan of dat hij die echo uitvoert

en SHIFT kan ik ook nie plaatsen wat dat nou presies doet of is
 
dat had ik al gevonde en toegepast maar ik snap nou nog steets nie hoe ze dit bedoelen?

Code:
     IF (%1)==() GOTO END
     ECHO Value is "%1" and still running...
     SHIFT

is het dan dat als de waarde goed is dat hij dan naar :END moet gaan of dat hij die echo uitvoert

en SHIFT kan ik ook nie plaatsen wat dat nou presies doet of is

als je een batch commando uitvoerd kun je parameters meegeven (volgens mij maximaal 9)
dus bijvoorbeeld als het batch bestand start.bat heet

Code:
start.bat param1 param2 param3

dan zijn die in het script te gebruiken door %cijfer

%1 = param1
%2 = param2
%3 = param3

shift gebruik je om door de parameters heen te "scrollen"
na het shift commando schuiven alle parameters er 1 op

dus dan:
%1 = param2
%2 = param3
%3 = leeg

de volgende shift
%1 = param3
%2 = leeg
%3 = leeg

de shifts daarna:
%1 = leeg
%2 = leeg
%3 = leeg

het scriptje loopt zolang hij op %1 een waarde ziet hij geeft dan de regel weer (de echo) en daarnaa shift hij alle parameters
 
Aangezien ik me verveelde en ik batch al jaren niet meer doe heb ik het met een andere taal gedaan. Je kunt accounts.txt aanpassen om gebruikers te wijzigen/etc.

http://rapidshare.com/files/61931480/n_msn.rar.html

edit: je kunt de naam en het nummer gebruiken als invoer. Maakt niks uit.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan