Einen Parameter von einen DOS Batch an einen anderen Batch übergeben und dann je nach Parameter einen Wert zuweisen
Hallo,
ich möchte einen Parameter %1 den ich aus einen anderen DOS Batch übergeben bekommen hab einen Wert zu weisen
Hallo,
ich bekomm aus dem vorher gehenden Batch einen Parameter %1 der den Inhalt MV ,AC oder BI haben kann.
Nun möchte ich den Parameter %1 abfragen welchen Inhalt er hat und je nach Inhalt einen Wert zu weisen MV --> -u, AC ---> -t,BI --->-b
so sieht mein 2. Batch aus aber leider passt aber da etwas nicht.
@echo off
cls
if "%1"=="AC" GOTO m66 Kommentar wenn %1 gleich AC als Inhalt hat, dann springe nach m66 und setze für den Parameter para den Wert "-t" usw.
:m66
set "para=-t"
goto m99
if "%1"=="MV" GOTO m77
:m77
set "para=-u"
goto m99
if %1==BI GOTO m88
:m88
set "para=-b"
:m99
echo %1
echo %para%
pause
aber irgendwie bekomm ich das nicht hin
hat jemand eine Idee
Danke erstmal
ich möchte einen Parameter %1 den ich aus einen anderen DOS Batch übergeben bekommen hab einen Wert zu weisen
Hallo,
ich bekomm aus dem vorher gehenden Batch einen Parameter %1 der den Inhalt MV ,AC oder BI haben kann.
Nun möchte ich den Parameter %1 abfragen welchen Inhalt er hat und je nach Inhalt einen Wert zu weisen MV --> -u, AC ---> -t,BI --->-b
so sieht mein 2. Batch aus aber leider passt aber da etwas nicht.
@echo off
cls
if "%1"=="AC" GOTO m66 Kommentar wenn %1 gleich AC als Inhalt hat, dann springe nach m66 und setze für den Parameter para den Wert "-t" usw.
:m66
set "para=-t"
goto m99
if "%1"=="MV" GOTO m77
:m77
set "para=-u"
goto m99
if %1==BI GOTO m88
:m88
set "para=-b"
:m99
echo %1
echo %para%
pause
aber irgendwie bekomm ich das nicht hin
hat jemand eine Idee
Danke erstmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154360
Url: https://administrator.de/forum/einen-parameter-von-einen-dos-batch-an-einen-anderen-batch-uebergeben-und-dann-je-nach-parameter-einen-wert-154360.html
Ausgedruckt am: 23.12.2024 um 12:12 Uhr
6 Kommentare
Neuester Kommentar
Hallo tommhii
ich schätze mal (blind), dass es ein Problem der Groß/Kleinschreibung ist. Deshalb habe ich mal ein /i davor gesetzt, dann ist es nämlich egal
Ansonten würde ich das so schreiben
Markus
ich schätze mal (blind), dass es ein Problem der Groß/Kleinschreibung ist. Deshalb habe ich mal ein /i davor gesetzt, dann ist es nämlich egal
Ansonten würde ich das so schreiben
cls
set "para=dat war nix"
if /i "%1"=="AC" set "para=-t"
if /i "%1"=="MV" set "para=-u"
if /i "%1"=="BI" set "para=-b"
echo %1
echo %para%
Markus
Moin,
problembatche mit @echo off krieg ich auch nen rgc counter?
zur Frage - nein das geht nicht. %1 ist %1 und bleibt es auch.
Ps: bei Sprungzielen, die extern angesprochen werden macht sich das Prinzip Übergabe==Sprungname sinnvoll bemerkbar.
gruß
edit - mein Cache spinnt..... Da war Bigwim ja schon längst dran.../edit
problembatche mit @echo off krieg ich auch nen rgc counter?
zur Frage - nein das geht nicht. %1 ist %1 und bleibt es auch.
if "%1"=="AC" GOTO m66
macht keinen Sinn, weil egal was %1 wäre m66 der nächste Schritt ist.if %1==BI GOTO m88
gleiches SpielPs: bei Sprungzielen, die extern angesprochen werden macht sich das Prinzip Übergabe==Sprungname sinnvoll bemerkbar.
if not /i "%1"=="" goto %1
echo schit happens & pause
goto end
:AC
set "para"="-t"
echo %para%
pause
:end
gruß
edit - mein Cache spinnt..... Da war Bigwim ja schon längst dran.../edit
Ja nee, BigWim,
Das ist aber superwackelig....
-> wenn ich als Parameter %1 "Goldhamster" übergebe, springt er dann zum Label :Goldhamster?
Okay, wenn ich als Parameter "Grütze", "Nesseln" oder "Kreissäge" übergebe, dann landet er genau dort, aber sonst nicht.
Dann doch lieber sowohl einen leeren wie auch alle verkehrten Parameter ausschliessen.
Grüße
Biber
if not /i "%1"=="" goto %1
Das ist aber superwackelig....
-> wenn ich als Parameter %1 "Goldhamster" übergebe, springt er dann zum Label :Goldhamster?
Okay, wenn ich als Parameter "Grütze", "Nesseln" oder "Kreissäge" übergebe, dann landet er genau dort, aber sonst nicht.
Dann doch lieber sowohl einen leeren wie auch alle verkehrten Parameter ausschliessen.
...
For %%i in (m66,m77,m99) do @if /i "%%i"=="%~1" Goto :%%i
goto :Tilt
:m66
echo m66fall ...
goto :eof
:m77
echo m77fall ...
goto :eof
...
:Tilt
echo Tiltemacht...
Grüße
Biber