[XP] [BATCH] Parameters en aanroep van Batch

Pagina: 1
Acties:

  • gjkamstra
  • Registratie: September 2000
  • Laatst online: 08:35
Ik ben bezig met een batch filetje.
Ik heb daarbij echter de volgende problemen:

1) Command line parameters %1 .. %9 werken prima, ik heb echter 12 parameters. %10 .. %12 werken niet (leveren gewoon %1 ++ X op). Hoe kan ik toch die parameters uitlezen?
2) Nadat ik een ander batch bestand aanroep, stopt mijn hoofdbatch, en voert de rest van de commando's niet uit dus bv:

Batchfile:
1
2
bla.bat
echo bla


Nu wordt enkel bla.bat uitgevoerd, de rest word genegeerd.

Hier had een grappige signature moeten staan, maar helaas: geen inspiratie


  • blackd
  • Registratie: Februari 2001
  • Niet online
Moet je voor vraag 2 niet 'call' gebruiken?

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • gjkamstra
  • Registratie: September 2000
  • Laatst online: 08:35
call werkt idd, tnx!
Nu de eerste vraag nog!

Hier had een grappige signature moeten staan, maar helaas: geen inspiratie


Verwijderd

Antwoord op vraag 1:

``Wijzigt de positie van een vervangbare parameter in een batchbestand.

SHIFT [/n]

Als opdrachtextensies worden ingeschakeld, ondersteunt de opdracht
SHIFT de schakeloptie /n, waardoor de opdracht begint met het
verplaatsen vanaf het x-de argument, waarbij x een waarde van
0 t/m 8 is. Bijvoorbeeld:

SHIFT /2

verplaatst %3 naar %2, %4 naar %3 etc, waarbij %0 en %1 niet
worden beïnvloed.
''


Voorbeeldje:
code:
1
2
3
4
5
6
7
8
@ECHO OFF

:lusje

ECHO.%0
SHIFT

IF NOT "%0" == "" GOTO lusje

[ Voor 7% gewijzigd door Verwijderd op 27-01-2003 13:57 ]


  • gjkamstra
  • Registratie: September 2000
  • Laatst online: 08:35
Werkt prima, tnx!

Hier had een grappige signature moeten staan, maar helaas: geen inspiratie


Verwijderd

evt ipv %1 %2 %3.. etc, %* gebruiken om alle parameters in 1 keer in te lezen.

Verwijderd

blackd schreef op 27 January 2003 @ 13:31:
Moet je voor vraag 2 niet 'call' gebruiken?
door dit te gebruiken kan je alles in 1 script houden (en wordt het overzichtelijker)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
:runscript
          call :bla %*
          call :bla2 %9
:goto eof


:bla
         commandos
:goto eof

:bla2
         commandos
:goto eof
Pagina: 1