Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch datei soll mit Tastendruck etwas bestimmtes ausführen

Frage Entwicklung Batch & Shell

Mitglied: Bassdriver

Bassdriver (Level 1) - Jetzt verbinden

02.07.2010, aktualisiert 14:24 Uhr, 10489 Aufrufe, 11 Kommentare

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?
Mitglied: 60730
02.07.2010 um 13:18 Uhr
moin und willkomen

ohne ross und reiter - ist der Tipp etwas schwerer...

choice /?
set /p

Gruß
Bitte warten ..
Mitglied: TDuemesnil
02.07.2010 um 13:21 Uhr
nur als Anregung
set /? hilft dabei
set /P Eingabe=[FRAGE]
if "%Eingabe%"=="A" call batcheins
if "%Eingabe%"=="B" call batcheins
Bitte warten ..
Mitglied: Bassdriver
02.07.2010 um 13:51 Uhr
Zitat von TDuemesnil:
nur als Anregung
set /? hilft dabei
set /P Eingabe=[FRAGE]
if "%Eingabe%"=="A" call batcheins
if "%Eingabe%"=="B" call batcheins

mit diesem script führt bei angabe von b aber auch gleichzeitig a aus...

ich habs bei mir so:
01.
@echo off 
02.
set /P Eingabe=Eingabe 
03.
if "%Eingabe%"=="a" call  
04.
	echo A wurde ausgeführt -- %date% %time%  >> C:\log.txt 
05.
if "%Eingabe%"=="b" call 
06.
    echo B wurde ausgeführt -- %date% %time%  >> C:\log.txt  
07.
if "%Eingabe%"=="c" call exit 
08.
	echo C wurde ausgeführt -- %date% %time%  >> C:\log.txt
Wenn ich jetzt "c" eingebe...

Meine LOG sieht so aus:

A wurde ausgeführt -- 02.07.2010 13:54:32,25
B wurde ausgeführt -- 02.07.2010 13:54:32,26
C wurde ausgeführt -- 02.07.2010 13:54:32,26

[Edit Biber] Alles nach "Batch & Shell" geschoben. Und schon mal Codetags dazugepackt... das wird bestimmt noch welcher... [/Edit]
Bitte warten ..
Mitglied: Bassdriver
02.07.2010 um 14:38 Uhr
----
[Edit Biber] Alles nach "Batch & Shell" geschoben. Und schon mal Codetags dazugepackt... das wird bestimmt noch
welcher... [/Edit]


Wie meinst Du das?
Bitte warten ..
Mitglied: Biber
02.07.2010 um 14:51 Uhr
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
Bitte warten ..
Mitglied: Bassdriver
02.07.2010 um 14:59 Uhr
Achso Ok

dankeschön ;)
Bitte warten ..
Mitglied: TDuemesnil
02.07.2010 um 15:04 Uhr
@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
Bitte warten ..
Mitglied: Biber
02.07.2010 um 15:15 Uhr
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*)
01.
@echo off & setlocal 
02.
:: Setlocal stellt sicher, dass im Batch gesetzte Variablen auch nur von und für diesen Batch sind 
03.
Set "log=c:\temp\log,txt"  & :: im Einsatzfall NACH dem Testen 
04.
Set "log=con" & :: JETZT, beim Testen als Logfile die Konsole/den Bildschirm nehmen. 
05.
 
06.
set /P Eingabe=Eingabe 
07.
::  "IF /i " stellt sicher, das Klein/Gross-Schreiben keinen Unterschied macht ..> also "a" und "A" sind beide okay 
08.
if  /i "%Eingabe%"=="a" echo A wurde ausgeführt -- %date% %time%>>%log% 
09.
if /i "%Eingabe%"=="b" echo B wurde ausgeführt -- %date% %time%>>%log% 
10.
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
Bitte warten ..
Mitglied: Bassdriver
02.07.2010 um 15:37 Uhr
Jaa Super dankeschön klappt schonmal!!

Jetzt fehlt mir nur noch ein Error Script...

Bsp:

Drücken Sie Taste A,B,C

:: der Nutzer drückt D

Falsche Taste gedrückt bitte wiederholen
Bitte warten ..
Mitglied: Biber
02.07.2010 um 16:29 Uhr
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]

01.
@echo off & setlocal 
02.
:: Setlocal stellt sicher, dass im Batch gesetzte Variablen auch nur von und für diesen Batch sind 
03.
Set "log=c:\temp\log.txt"  & :: im Einsatzfall NACH dem Testen 
04.
Set "log=con" & :: JETZT, beim Testen als Logfile die Konsole/den Bildschirm nehmen. 
05.
:TryAgainPls 
06.
set /P Eingabe=Eingabe 
07.
::  "IF /i " stellt sicher, das Klein/Gross-Schreiben keinen Unterschied macht ..> also "a" und "A" sind beide okay 
08.
if  /i "%Eingabe%"=="a" goto :Machwat 
09.
if /i "%Eingabe%"=="b" goto :Machwat 
10.
if /i "%Eingabe%"=="c" goto :Machwat 
11.
If /i "%Eingabe%"=="x" goto :eof 
12.
:: wenn keines der ganzen GOTOs gegriffen hat... noch ein Versuch 
13.
Echo Falsche Eingabe - Bitte nur A, B, C eingeben oder X für Abbrechen 
14.
goto :TryAgainPls 
15.
 
16.
:: Ende des Hauptscripts 
17.
##  Morgen kommen die Jungs nach Hause ## 
18.
## 2 Becher Joghurt ## 
19.
## Mutti anrufen ## 
20.
## sonstige Notizen ## 
21.
 
22.
:Machwat 
23.
echo %Eingabe% wurde ausgeführt -- %date% %time%>>%log% 
24.
Echo hier könnte mehr passieren 
25.
pause 
26.
 
Grüße
Biber
Bitte warten ..
Mitglied: kkboy94
02.07.2010 um 22:24 Uhr
Ich würde noch ein Offset bei die Variablen tun also so:
01.
@echo off & setlocal 
02.
:: Setlocal stellt sicher, dass im Batch gesetzte Variablen auch nur von und für diesen Batch sind 
03.
Set "log=c:\temp\log.txt"  & :: im Einsatzfall NACH dem Testen 
04.
Set "log=con" & :: JETZT, beim Testen als Logfile die Konsole/den Bildschirm nehmen. 
05.
:TryAgainPls 
06.
set /P Eingabe=Eingabe 
07.
::  "IF /i " stellt sicher, das Klein/Gross-Schreiben keinen Unterschied macht ..> also "a" und "A" sind beide okay 
08.
if  /i "%Eingabe:~,1%"=="a" goto :Machwat 
09.
if /i "%Eingabe:~,1%"=="b" goto :Machwat 
10.
if /i "%Eingabe:~,1%"=="c" goto :Machwat 
11.
If /i "%Eingabe:~,1%"=="x" goto :eof 
12.
:: wenn keines der ganzen GOTOs gegriffen hat... noch ein Versuch 
13.
Echo Falsche Eingabe - Bitte nur A, B, C eingeben oder X für Abbrechen 
14.
goto :TryAgainPls 
15.
 
16.
:: Ende des Hauptscripts 
17.
##  Morgen kommen die Jungs nach Hause ## 
18.
## 2 Becher Joghurt ## 
19.
## Mutti anrufen ## 
20.
## sonstige Notizen ## 
21.
 
22.
:Machwat 
23.
echo %Eingabe% wurde ausgeführt -- %date% %time%>>%log% 
24.
Echo hier könnte mehr passieren 
25.
pause 
26.
 
@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":

Mit freundlichen Grüßen Karsten
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...