Parameter einer Batchdatei aufschlüsseln
Hallo Zusammen,
Ich komme mal direkt zu meiner Frage, also ich habe eine Batchdatei an die ich gerne parameter in der form
übergeben würde...
Die anzahl der Parameter ist dabei aber immer unterschiedlich,
meine frage ist nun wie ich die parameter so aufteilen kann das ich nachher in der Batchdatei die Variablen nach dem schema:
...usw
Für eure Hilfe wäre ich sehr dankbar,
Grüße Malte.
Ich komme mal direkt zu meiner Frage, also ich habe eine Batchdatei an die ich gerne parameter in der form
batch.bat eins=1 zwei=2
übergeben würde...
Die anzahl der Parameter ist dabei aber immer unterschiedlich,
meine frage ist nun wie ich die parameter so aufteilen kann das ich nachher in der Batchdatei die Variablen nach dem schema:
set "1_1=eins"
set "1_2=1"
set "2_1=zwei"
set "2_2=2"
...usw
Für eure Hilfe wäre ich sehr dankbar,
Grüße Malte.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 186330
Url: https://administrator.de/contentid/186330
Ausgedruckt am: 16.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Turrex0100!
Grundsätzlich halte ich ja eher weniger davon, Variablen der Art "1_1" zu verwenden, aber das sollte sich im einfachsten Fall etwa so lösen lassen:
Die unterschiedliche Behandlung der einzelnen Parameter(teile) ist erforderlich, da "=" als Trennzeichen interpretiert wird, wenn nicht das "Parameter-Werte-Paar" unter Anführungszeichen übergeben wird ...
Grüße
bastla
Grundsätzlich halte ich ja eher weniger davon, Variablen der Art "1_1" zu verwenden, aber das sollte sich im einfachsten Fall etwa so lösen lassen:
@echo off & setlocal
set /a PNr=1
set /a WNr=1
for %%i in (%*) do call :ProcessParam %%i
:: ab hier Verarbeitung
::
:: Ende Hauptprogramm
goto :eof
:ProcessParam
echo "%~1"|findstr "=">nul && (
for /f "tokens=1* delims==" %%a in ("%~1") do (
set "%PNr%_1=%%~a"
set "%PNr%_2=%%~b"
)
set /a PNr+=1
set /a WNr=1
) || (
set "%PNr%_%WNr%=%~1"
set /a WNr+=1
if %WNr% geq 2 (
set /a PNr+=1
set /a WNr=1
)
)
goto :eof
Grüße
bastla