Batch datei soll mit Tastendruck etwas bestimmtes ausführen
per taste 1 =script 1 ausführen per taste 2 = script 2 ausführen
Hallo,
ich wollte eine Batch datei anfertigen die mehrere Scripts ausführt.
Allerdings sollte dies so ablaufen:
Bsp:
Taste "A" = Führt Script eins aus
Taste "B"= Führt Script zwei aus
WIe kann ich das so anfertigen?
Hallo,
ich wollte eine Batch datei anfertigen die mehrere Scripts ausführt.
Allerdings sollte dies so ablaufen:
Bsp:
Taste "A" = Führt Script eins aus
Taste "B"= Führt Script zwei aus
WIe kann ich das so anfertigen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146119
Url: https://administrator.de/contentid/146119
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
11 Kommentare
Neuester Kommentar
moin und willkomen
ohne ross und reiter - ist der Tipp etwas schwerer...
Gruß
ohne ross und reiter - ist der Tipp etwas schwerer...
choice /?
set /p
set /p
Gruß
Moin bassdriver,
willkommen im Forum.
Ich meine damit, dass ich deine Frage aus dem Bereich "Windows allgemein wirds wohl sein" in den Bereich "Batch & Shell" geschoben habe.
Dort findet sie bestimmt viel eher Bekannte und Verwandte.
Außerdem habe ich diejenigen Zeilen, die jetzt in deinem Kommentar mit einer generierten Zeilennummer erscheinen, als Code formatiert
Das Wort Code, so wie es hier im Forum verwendet wird, hat nichts mit dem ähnlich klingenden Wort aus dem Bereich Lebewesen zu tun, sondern ist neudeutsch für "Schnipsel". Jedenfalls hat es meistens nichts miteinander zu tun.
Oder zumindest nicht zwingend.
Anyhow, ich bin optimistisch, dass wir heute deinen Schnipsel noch zum Fliegen bringen.
Grüße
Biber
willkommen im Forum.
Ich meine damit, dass ich deine Frage aus dem Bereich "Windows allgemein wirds wohl sein" in den Bereich "Batch & Shell" geschoben habe.
Dort findet sie bestimmt viel eher Bekannte und Verwandte.
Außerdem habe ich diejenigen Zeilen, die jetzt in deinem Kommentar mit einer generierten Zeilennummer erscheinen, als Code formatiert
Das Wort Code, so wie es hier im Forum verwendet wird, hat nichts mit dem ähnlich klingenden Wort aus dem Bereich Lebewesen zu tun, sondern ist neudeutsch für "Schnipsel". Jedenfalls hat es meistens nichts miteinander zu tun.
Oder zumindest nicht zwingend.
Anyhow, ich bin optimistisch, dass wir heute deinen Schnipsel noch zum Fliegen bringen.
Grüße
Biber
@echo off
set /P Eingabe=Eingabe
if "%Eingabe%"=="a" echo A wurde ausgeführt -- %date% %time% >> log.txt
if "%Eingabe%"=="b" echo B wurde ausgeführt -- %date% %time% >> log.txt
if "%Eingabe%"=="c" echo C wurde ausgeführt -- %date% %time% >> log.txt
Call EOL mach gar nix in deinem Script
Die Zeile zwischen den IF abfragen sind ganz normale zeilen und haben mit dem if nix zu tun.
HTH
Thomas
set /P Eingabe=Eingabe
if "%Eingabe%"=="a" echo A wurde ausgeführt -- %date% %time% >> log.txt
if "%Eingabe%"=="b" echo B wurde ausgeführt -- %date% %time% >> log.txt
if "%Eingabe%"=="c" echo C wurde ausgeführt -- %date% %time% >> log.txt
Call EOL mach gar nix in deinem Script
Die Zeile zwischen den IF abfragen sind ganz normale zeilen und haben mit dem if nix zu tun.
HTH
Thomas
Mhhh,
ich bin bei den Temperaturen doch nicht so geduldig, wie ich von mir dachte.
Deshalb ergänzend zu TDuemesnils' Ausführungen (leider ohne Codeformatierung *anmerk*)
Und das EOL bei Thomas bedeutet "End of Line"--> ein "Call" gefolgt von "Nix" in der Zeile.
Grüße
Biber
ich bin bei den Temperaturen doch nicht so geduldig, wie ich von mir dachte.
Deshalb ergänzend zu TDuemesnils' Ausführungen (leider ohne Codeformatierung *anmerk*)
@echo off & setlocal
:: Setlocal stellt sicher, dass im Batch gesetzte Variablen auch nur von und für diesen Batch sind
Set "log=c:\temp\log,txt" & :: im Einsatzfall NACH dem Testen
Set "log=con" & :: JETZT, beim Testen als Logfile die Konsole/den Bildschirm nehmen.
set /P Eingabe=Eingabe
:: "IF /i " stellt sicher, das Klein/Gross-Schreiben keinen Unterschied macht ..> also "a" und "A" sind beide okay
if /i "%Eingabe%"=="a" echo A wurde ausgeführt -- %date% %time%>>%log%
if /i "%Eingabe%"=="b" echo B wurde ausgeführt -- %date% %time%>>%log%
if /i "%Eingabe%"=="c" echo C wurde ausgeführt -- %date% %time%>>%log%
Und das EOL bei Thomas bedeutet "End of Line"--> ein "Call" gefolgt von "Nix" in der Zeile.
Grüße
Biber
Moin Bassdriver,
dann lass uns langsam und schrittweise weiter verfeinern.
Mit der bisherigen Skizze haben wir ja schon bewiesen, dass wir auf die "richtigen" Eingaben "richtig" reagieren.
Aber eben nur in derselben Zeile ( in der Zeile, die mit "IF...." beginnt, steht auch das, was ausgeführt werden soll).
Jetzt lassen wir ihn/sie/es mal springen [Hilfe zu GOTO gibt es unter Goto /? am CMD-Prompt]
Grüße
Biber
dann lass uns langsam und schrittweise weiter verfeinern.
Mit der bisherigen Skizze haben wir ja schon bewiesen, dass wir auf die "richtigen" Eingaben "richtig" reagieren.
Aber eben nur in derselben Zeile ( in der Zeile, die mit "IF...." beginnt, steht auch das, was ausgeführt werden soll).
Jetzt lassen wir ihn/sie/es mal springen [Hilfe zu GOTO gibt es unter Goto /? am CMD-Prompt]
@echo off & setlocal
:: Setlocal stellt sicher, dass im Batch gesetzte Variablen auch nur von und für diesen Batch sind
Set "log=c:\temp\log.txt" & :: im Einsatzfall NACH dem Testen
Set "log=con" & :: JETZT, beim Testen als Logfile die Konsole/den Bildschirm nehmen.
:TryAgainPls
set /P Eingabe=Eingabe
:: "IF /i " stellt sicher, das Klein/Gross-Schreiben keinen Unterschied macht ..> also "a" und "A" sind beide okay
if /i "%Eingabe%"=="a" goto :Machwat
if /i "%Eingabe%"=="b" goto :Machwat
if /i "%Eingabe%"=="c" goto :Machwat
If /i "%Eingabe%"=="x" goto :eof
:: wenn keines der ganzen GOTOs gegriffen hat... noch ein Versuch
Echo Falsche Eingabe - Bitte nur A, B, C eingeben oder X für Abbrechen
goto :TryAgainPls
:: Ende des Hauptscripts
## Morgen kommen die Jungs nach Hause ##
## 2 Becher Joghurt ##
## Mutti anrufen ##
## sonstige Notizen ##
:Machwat
echo %Eingabe% wurde ausgeführt -- %date% %time%>>%log%
Echo hier könnte mehr passieren
pause
Grüße
Biber
Ich würde noch ein Offset bei die Variablen tun also so:
@Bassdriver
So wird sichergestellt, dass nur der erste Buchstabe relevant ist:
Du kannst also auch bei der Eingabe "Blub" eingeben, und die Batch wertet es als einfaches "b":
MfG Karsten
@echo off & setlocal
:: Setlocal stellt sicher, dass im Batch gesetzte Variablen auch nur von und für diesen Batch sind
Set "log=c:\temp\log.txt" & :: im Einsatzfall NACH dem Testen
Set "log=con" & :: JETZT, beim Testen als Logfile die Konsole/den Bildschirm nehmen.
:TryAgainPls
set /P Eingabe=Eingabe
:: "IF /i " stellt sicher, das Klein/Gross-Schreiben keinen Unterschied macht ..> also "a" und "A" sind beide okay
if /i "%Eingabe:~,1%"=="a" goto :Machwat
if /i "%Eingabe:~,1%"=="b" goto :Machwat
if /i "%Eingabe:~,1%"=="c" goto :Machwat
If /i "%Eingabe:~,1%"=="x" goto :eof
:: wenn keines der ganzen GOTOs gegriffen hat... noch ein Versuch
Echo Falsche Eingabe - Bitte nur A, B, C eingeben oder X für Abbrechen
goto :TryAgainPls
:: Ende des Hauptscripts
## Morgen kommen die Jungs nach Hause ##
## 2 Becher Joghurt ##
## Mutti anrufen ##
## sonstige Notizen ##
:Machwat
echo %Eingabe% wurde ausgeführt -- %date% %time%>>%log%
Echo hier könnte mehr passieren
pause
@Bassdriver
So wird sichergestellt, dass nur der erste Buchstabe relevant ist:
Du kannst also auch bei der Eingabe "Blub" eingeben, und die Batch wertet es als einfaches "b":
MfG Karsten