frage batch datei
Ich wollte das Installieren einiger programme etwas automatisieren und habe eine batch-datei geschrieben.
ich wollte noch eine Userabfrage einbauen um alles in einer batch-datei zu realisieren, da es unter bestimmten Vorraussetzungen nicht nötig ist ein bestimmtes Programm mit zu instalieren. Allerdings bekomme ich die Userabfrage nicht hin hat einer nenn Tip?
Ich habe eine batch-datei geschrieben die mehrere Programme quasie nach einander installiert. Da unter bestimmten Voraussetzungen ein Patch nicht installiert werden muß, wollte ich eigentlich in die batch-datei eine Userabfrage einbaun nach dem Motto
" ist in ihrem programm das patch 1.4b schon integriert? y=ja n=nein "
ist antwort j goto .....
ist antwort n goto ....
Ich bekomme es aber nicht hin das der Rechner auf die Eingabe wartet und entsprechend der Antwort zu der jeweiligen Zeile springt. Kann mir einer nenn Tipp geben wie ich das realisieren kann ohne das ich 2 batch-datein schreiben muß. Eine die das patch mitinstalliert und eine die es überspringt. Mir fällt nix mehr ein und ich gebe zu das ich eher ein Laie bin wenn es um schreiben von batch-datein geht.
Batch-datein sind aber sehr nützlich und ich habe schon einige Sachen für die ich ebenfalls eine batch-datei schreiben will. Ich bekomme aber einfach nicht die Tastaturabfrage hin.
Hat jemand nenn Tipp oder mal ne Sekunde Zeit der eventuell weiß wie das geht und mir nenn hilfreichen Tipp geben kann?
ich wollte noch eine Userabfrage einbauen um alles in einer batch-datei zu realisieren, da es unter bestimmten Vorraussetzungen nicht nötig ist ein bestimmtes Programm mit zu instalieren. Allerdings bekomme ich die Userabfrage nicht hin hat einer nenn Tip?
Ich habe eine batch-datei geschrieben die mehrere Programme quasie nach einander installiert. Da unter bestimmten Voraussetzungen ein Patch nicht installiert werden muß, wollte ich eigentlich in die batch-datei eine Userabfrage einbaun nach dem Motto
" ist in ihrem programm das patch 1.4b schon integriert? y=ja n=nein "
ist antwort j goto .....
ist antwort n goto ....
Ich bekomme es aber nicht hin das der Rechner auf die Eingabe wartet und entsprechend der Antwort zu der jeweiligen Zeile springt. Kann mir einer nenn Tipp geben wie ich das realisieren kann ohne das ich 2 batch-datein schreiben muß. Eine die das patch mitinstalliert und eine die es überspringt. Mir fällt nix mehr ein und ich gebe zu das ich eher ein Laie bin wenn es um schreiben von batch-datein geht.
Batch-datein sind aber sehr nützlich und ich habe schon einige Sachen für die ich ebenfalls eine batch-datei schreiben will. Ich bekomme aber einfach nicht die Tastaturabfrage hin.
Hat jemand nenn Tipp oder mal ne Sekunde Zeit der eventuell weiß wie das geht und mir nenn hilfreichen Tipp geben kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 115094
Url: https://administrator.de/contentid/115094
Ausgedruckt am: 05.11.2024 um 17:11 Uhr
8 Kommentare
Neuester Kommentar
Hi,
damit sollte es gehen.
Es wird erst die Frage gestellt und mit SET /P auf eine Eingabe gewartet, die dann in %frage% gespeichert wird. Wegen der Übersichtlichkeit ist die Abfrage der Antwort in der Zeile unter der Frage, damit die Eingabe unter der Frage steht und nicht direkt im Anschluss. Du könntest aber auch schreiben:
SET /P antwort=Ist in ihrem programm das patch 1.4b schon integriert? y=ja n=nein
Je nach Antwort (Groß-/Kleinschreibung wird durch /i ignoriert) wird dann zu :ja oder :nein gesprungen, wo du dann z.B. deine Software installieren kannst.
Gruß
Nottrott
damit sollte es gehen.
@echo off
echo Ist in ihrem programm das patch 1.4b schon integriert? y=ja n=nein
SET /P antwort=
IF /i %antwort% == y goto ja
goto nein
:ja
echo Ja
goto ende
:nein
echo Nein
:ende
pause
Es wird erst die Frage gestellt und mit SET /P auf eine Eingabe gewartet, die dann in %frage% gespeichert wird. Wegen der Übersichtlichkeit ist die Abfrage der Antwort in der Zeile unter der Frage, damit die Eingabe unter der Frage steht und nicht direkt im Anschluss. Du könntest aber auch schreiben:
SET /P antwort=Ist in ihrem programm das patch 1.4b schon integriert? y=ja n=nein
Je nach Antwort (Groß-/Kleinschreibung wird durch /i ignoriert) wird dann zu :ja oder :nein gesprungen, wo du dann z.B. deine Software installieren kannst.
Gruß
Nottrott
Hallo Nottrott,
ziemlich gut, perfekt wäre wenn eine Leereingabe kein
erzeugen würde weil die linke Seite der IF Abfrage dann ebenfalls leer ist.
Also besser:
Warum eigentlich y und nicht j?
Einen schönen Feiertag noch!
Gruß
LotPings
ziemlich gut, perfekt wäre wenn eine Leereingabe kein
"goto" ist syntaktisch an dieser Stelle nicht verarbeitbar.
erzeugen würde weil die linke Seite der IF Abfrage dann ebenfalls leer ist.
Also besser:
If /I "%antwort%"=="y" goto ja
Warum eigentlich y und nicht j?
Einen schönen Feiertag noch!
Gruß
LotPings
Hallo tigerbase,
ich überlege gerade, ob das auch etwas knapper formuliert werden könnte
Die Batchdatei kennt ihren eigenen Standort: %~f0
Du kannst das benutzen um das, oder ein relativ zur Batch gelegenes Verzeichnis, zum aktuellen Verzeichnis zu machen:
Hier mal Unterverzecihnis Test im selben Verzeichnis wie die Batch.
Statt CD /D geht auch pushd wenn du später mit popd ins originäre Verzeichnis zurückspringen willst.
Gruß
LotPings
ich überlege gerade, ob das auch etwas knapper formuliert werden könnte
Die Batchdatei kennt ihren eigenen Standort: %~f0
Du kannst das benutzen um das, oder ein relativ zur Batch gelegenes Verzeichnis, zum aktuellen Verzeichnis zu machen:
Hier mal Unterverzecihnis Test im selben Verzeichnis wie die Batch.
Statt CD /D geht auch pushd wenn du später mit popd ins originäre Verzeichnis zurückspringen willst.
@Echo off
echo ME=%~f0
echo Pfad = "%~dp0"
CD /D "%~dp0.\test"
Dir *
Gruß
LotPings