Batch benutzerdefinierte Parameter

  • Themenstarter Themenstarter Lyxatros
  • Beginndatum Beginndatum
L

Lyxatros

Hallo,
ich möchte ein kleines Batch Script schreiben und dort diverse Parameter übergeben, dies ist ja an und für sich kein Problem, wenn ich eine fixe Parameter Anzahl besitze, Bsp:

Echo Name %1
Echo Vorname %2

Nun möchte ich aber, dass die Anzahl der Variablen flexibel ist.
Am liebsten möchte ich, dass ich Variablennamen angeben kann, als Bsp:

StartTest.bat -n Müller -v Juliane

Dort möchte ich dann eben auf die Variablen -n -v zugreiffen...
Ist dies möglich?

Besten Dank,
Lyxatros
 
Habe bereits einige Sekunden nach dem abschicken eine Lösung gefunden!
Mann kann einfach per If-Abfrage und einem durchloopen per Shift Befehl den vorherigen Variablenwert abfragen. Ist also %1 z. B. -n, dann ist die nächste Variable (%2) mit grosser Wahrscheinlichkeit der dazugehörige Wert, problematisch wird es dann nur, wenn der nächste Paramter z. B. -v ist und nicht der gewünschte Wert.
Werde versuchen dies so gut als möglich abzufragen und bei einer guten Lösung diese hier veröffentlichen.
Wer eine gute Lösung kennt oder sogar eine einfacher, der soll sich bitte melden...

Dank,
Lyxatros
 
Ich hab mal ein bisschen rumprobiert und bin jetzt zu den Ergebnis gekommen, dass du das ganze in der Form 'datei.bat v_Dieter n_Müller' eingeben kannst.
Code:
@echo off
if %1x==x goto:eof
if not %1==cmdopen goto cmdopen
if %1==cmdopen goto weiter
goto:eof

:cmdopen
cmd /V:on /c %0 cmdopen %1 %2 %3 %4 %5 %6 %7 %8
goto:eof

:weiter
for %%i in (%2 %3 %4 %5 %6 %7 %8 %9) do (
  set pruef=%%i
  set pruef=!pruef:~0,2!
  set string=%%i 

  if !pruef!==n_ set name=!string:n_=!
  if !pruef!==v_ set vorname=!string:v_=!
)
  echo !vorname!
  echo !name!
goto:eof
Ist ein bisschen kompliziert geworden (weil mein Aufbau schlecht ist), also wenn du Fragen hast dann frag ;)
 

Neue Beiträge

Zurück