nyrados
Goto Top

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

Content-ID: 286028

Url: https://administrator.de/contentid/286028

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

MephMan
MephMan 19.10.2015 um 15:10:46 Uhr
Goto Top
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?
Nyrados
Nyrados 19.10.2015 um 16:23:09 Uhr
Goto Top
Danke für die Antwort,
Was meinen sie denn mit parsen?
MephMan
MephMan 19.10.2015 aktualisiert um 16:58:56 Uhr
Goto Top
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.

for /f "tokens=1-4 delims=." %a in ("192.168.1.100") do @echo var1: %a var2: %b var3: %c var4: %d  
Endoro
Endoro 20.10.2015 um 06:09:03 Uhr
Goto Top
Hey, ich glaube auch, das Beste ist das Kommando von cmd parsen zu lassen.
cmd /c %command%
Gruß, Endoro
holli.zimmi
holli.zimmi 20.10.2015 um 08:29:57 Uhr
Goto Top
Hi,

was ist mit dem Befehl "choice" ?

Gruß

Holli
Nyrados
Nyrados 29.10.2015 aktualisiert um 18:12:16 Uhr
Goto Top
Danke für eure Antworten ich hatte mir eine Portion Urlaub gegönnt weswegen ich nicht antworten konnte danke!
MichaelW84
MichaelW84 31.10.2015 aktualisiert um 16:01:38 Uhr
Goto Top
Du könntest folgendes machem:


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.
Nyrados
Nyrados 31.10.2015 um 17:39:08 Uhr
Goto Top
Könnte man so machen finde ich aber nicht so praktisch aber Trotzdem Danke