Avatar billede mohammed50 Nybegynder
14. august 2005 - 22:19 Der er 9 kommentarer og
1 løsning

Bat filer

Hej
lige et lille hurtigt spørgsmål, har sådan en bat fil
if %1==2 (
Start "bit defender" "C:\Program Files\Softwin\BitDefender Professional Edition\bdmcon.exe" cls
) else exit

hvis nu jeg skal have %1 til at være flere værdier altså som
If %==2 eller 3 eller 4 eller 10
hvordan skal det så skrives
Avatar billede old-faithful Praktikant
15. august 2005 - 00:05 #1
Jeg går udfra at du kan bruge en "FOR" kommando, og så lave et loop ud af det. Hvis du har flere "ord" i syntaks, kan du bruge "SHIFT" til at "rykke" ordene. Det er lidt svært at forklare, håber det er forståeligt.

Prøv evt. at se her:
- http://www.cs.ntu.edu.au/homepages/bea/home/subjects/ith305/description.html

Og måske er der noget du kan bruge i Timo Salmis guide:
- http://www.macalester.edu/~fines/batch_tricks.htm
Avatar billede bertelbrander Novice
15. august 2005 - 00:06 #2
Hvis man har et moderat antal numre kan man:
if [%1]==[2] (
  echo It Was 2
) else (
  if [%1]==[3] (
    echo It Was 3
  ) else (
    if [%1]==[4] (
      echo It was 4
    ) else (
      echo Not 2 or 3 or 4
    )
  )
)

Hvis man har mange kan man bruge en goto:
if %1 LSS 1 echo Number to small& goto :eof
if %1 GTR 3 echo Number to big& goto :eof

goto Label%1

:Label1
Echo Label 1
goto :eof

:Label2
Echo Label 2
goto :eof

:Label3
Echo Label 3
goto :eof

Et af problemerne ved sidste metode er at du er nødt til at checke om tallet er valid inden du hopper, batfilen vil stoppe hvis du hopper til en invalid label.
Avatar billede mohammed50 Nybegynder
15. august 2005 - 13:27 #3
altså tror nok jeg kan bruge det eksempel du er kommet med bertelbrander, da jeg skal bruge nogle tilfældige tal som jeg selv vælger. Har prøvet med dette, ved ikke lige om det er det letteste at gøre, men det virker :
if %1==2 (
Start "bit defender" "C:\Program Files\Softwin\BitDefender Professional Edition\bdmcon.exe" cls
) else ( if %1==3 (
Start "bit defender" "C:\Program Files\Softwin\BitDefender Professional Edition\bdmcon.exe" cls
) else ( if %1==10 (
Start "bit defender" "C:\Program Files\Softwin\BitDefender Professional Edition\bdmcon.exe" cls
)
)
)
Avatar billede mohammed50 Nybegynder
15. august 2005 - 13:30 #4
forresten så vil jeg høre, kan man ikke i samme sætning sige at den skal starte et program altså :
if %1==2 eller 3 eller 10 foreksempel ?? altså ved hver af disse skal den starte et program ??
Avatar billede bertelbrander Novice
15. august 2005 - 19:30 #5
Så vidt jeg ved kan man ikke check flere på én gang, men man kan:

for /F "tokens=%1" %%I in ("YES NO YES NO") do set xxx=%%I
if %xxx%==YES (
  echo It was
) else (
  echo It was not
)

Eller:
for /F "tokens=%1" %%I in ("YES NO YES NO") do (
  if %%I==YES (
    echo It was
  ) else (
    echo It was not
  )
)
Avatar billede mohammed50 Nybegynder
15. august 2005 - 23:49 #6
kunne du komme med et svar og lige komme med et eksempel på hvis jeg skulle bruge tallene 2,3,7,10 og 11 ?? hvordan præcis det skulle se ud altså med de to eksempler du er kommet med ? er lidt blank hva det her angår :))
Avatar billede bertelbrander Novice
15. august 2005 - 23:54 #7
for - linien vælger ord nummer %1 i ("...") (første ord hedder 1)

Så du kunne bruge
for /F "tokens=%1" %%I in ("NO YES YES NO NO NO YES NO NO YES YES") do set xxx=%%I
Avatar billede mohammed50 Nybegynder
18. august 2005 - 16:58 #8
kom med et svar bertelbrander så jeg kan lukke spørgsmålet.
Avatar billede bertelbrander Novice
18. august 2005 - 19:40 #9
Fik du det til at virke?

Jeg samler ikke på point, lav selv et svar og accepter det, så bliver spørgsmålet lukket & du får dine point tilbage.
Avatar billede mohammed50 Nybegynder
06. november 2005 - 23:14 #10
Jeg har ikke proevet med den /F tokens metoden du kom med, men jeg har brugt det allerfoerste eksempel du kom med. Og det virker, jeg tager pointene selv hvis du ikke vil have dem. Men tak for hjaelpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester