Eine art Eingabeaufforderung (Batch)
Hallo,
Könnte man mit Batch eine art Eingabeaufforderung simulieren mit /set /p sprich das dann mit call
eine andere Batch ausgeführt wird wo man aber nach dem Dateiname aber noch was eingeben kann z.b.
main.bat:
@echo off
:start
set /p Command=Command:
if not exist %Command%.bat goto start
call %command%.bat "%WasManDanebenGeschriebenHat%" "%WasManNachdemDanebenGeschriebenHat%"
pause <NUL
z.B. Wenn %Command% als hallo definiert wird
hallo.bat
@echo off
set 1=%~1
set 2=%~2
echo %2% %1%
Ich weiß nicht genau ob ihr versteht was ich meine aber man kann es ja mal probieren. :D
Könnte man mit Batch eine art Eingabeaufforderung simulieren mit /set /p sprich das dann mit call
eine andere Batch ausgeführt wird wo man aber nach dem Dateiname aber noch was eingeben kann z.b.
main.bat:
@echo off
:start
set /p Command=Command:
if not exist %Command%.bat goto start
call %command%.bat "%WasManDanebenGeschriebenHat%" "%WasManNachdemDanebenGeschriebenHat%"
pause <NUL
z.B. Wenn %Command% als hallo definiert wird
hallo.bat
@echo off
set 1=%~1
set 2=%~2
echo %2% %1%
Ich weiß nicht genau ob ihr versteht was ich meine aber man kann es ja mal probieren. :D
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 286028
Url: https://administrator.de/contentid/286028
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
8 Kommentare
Neuester Kommentar
Warum die Eingabeaufforderung simulieren und nicht einfach gleich via CMD Parameter an eine Batch übergeben?
cmd /C hallo.bat arg1 arg2 arg3
Aber um auf deine Frage zu antworten:
Grundsätzlich geht das, ich würd aber vielleicht versuchen, die Zeile zu parsen.
Das erste Wort bekommt das Suffix ".bat"/".cmd".
Dann wird die Zeile wieder zusammengeführt und so via call aufgerufen.
Ich bin jetzt auch nicht der Batch-Profi, vielleicht können hier ja mal die Gurus des Forum ihren Senf dazu geben?
cmd /C hallo.bat arg1 arg2 arg3
Aber um auf deine Frage zu antworten:
Grundsätzlich geht das, ich würd aber vielleicht versuchen, die Zeile zu parsen.
Das erste Wort bekommt das Suffix ".bat"/".cmd".
Dann wird die Zeile wieder zusammengeführt und so via call aufgerufen.
Ich bin jetzt auch nicht der Batch-Profi, vielleicht können hier ja mal die Gurus des Forum ihren Senf dazu geben?
Damit mein ich jetzt in dem Zusammenhang, die Zeile, die du eingibst (z.B.: "hallo arg1 arg2 arg3")
in seine Einzelteile zu zerlegen (also: "hallo", "arg1", "arg2", "arg3),
den ersten Teil zu nehmen ("hallo")
und mit dem Suffix zu versehen ("hallo"+".bat").
Anschließend alles wieder zusammenführen ("hallo.bat arg1 arg2 arg3").
So hast du dann denn Aufruf:
call hallo.bat arg1 arg2 arg3
Ich kann dir später noch ein Beispiel für sowas geben.
Gruß
Till
Ich habs mir grad nochmal durch den Kopf gehen lassen.
Ich wüsste grad nur ne Methode, wie man so etwas Zeilenweise machen könnte.
Bzw ...
Ich hab vor einiger Zeit auch mal ne IP für n Script zerlegt.
Ähnliches Verfahren.
in seine Einzelteile zu zerlegen (also: "hallo", "arg1", "arg2", "arg3),
den ersten Teil zu nehmen ("hallo")
und mit dem Suffix zu versehen ("hallo"+".bat").
Anschließend alles wieder zusammenführen ("hallo.bat arg1 arg2 arg3").
So hast du dann denn Aufruf:
call hallo.bat arg1 arg2 arg3
Gruß
Till
Ich habs mir grad nochmal durch den Kopf gehen lassen.
Ich wüsste grad nur ne Methode, wie man so etwas Zeilenweise machen könnte.
Bzw ...
Ich hab vor einiger Zeit auch mal ne IP für n Script zerlegt.
Ähnliches Verfahren.
for /f "tokens=1-4 delims=." %a in ("192.168.1.100") do @echo var1: %a var2: %b var3: %c var4: %d
Du könntest folgendes machem:
In etwa so könnte man das vielleicht auch lösen wenn ich dich richtig verstanden habe.
echo Programmnamen angeben:
Set /p programm=
If %programm%==programm1 goto programm1
:programm1
Set /p Parameter=
Call "programm1.bat" "%parameter%"
Echo Programm ausgeführt.
Pause
Exit
In etwa so könnte man das vielleicht auch lösen wenn ich dich richtig verstanden habe.