Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Falsche Eingabe bei set p - wie prüfen?

Mitglied: Kalamari

Kalamari (Level 1) - Jetzt verbinden

28.08.2011, aktualisiert 19:38 Uhr, 5667 Aufrufe, 15 Kommentare

Hallo

Habe da mal eine Frage..
Ich habe folgendes ....
01.
set /p einverstanden= 
02.
if /I "%einverstanden%"=="j" goto start 
03.
if /I "%einverstanden%"=="n" goto nichteinverstanden 
04.
if /I "%einverstanden%"=="*" goto evfehler
Soweit so gut, nur denke ich, dass das nicht 100% richtig ist.
Was nun, wenn jemand rein zufällig die * taste drückt?

Es soll halt so sein, dass nur j oder n akzeptiert wird und jede andere Taste, oder auch nur die Enter Taste gedrückt wird, das Script nicht weiter macht?

Vielen Dank
Mitglied: bastla
28.08.2011 um 19:13 Uhr
Hallo Kalamari!

Etwa so:
01.
:Eingabe 
02.
set "einverstanden=" 
03.
set /p einverstanden= 
04.
if /I "%einverstanden%"=="j" goto start 
05.
if /I "%einverstanden%"=="n" goto nichteinverstanden 
06.
echo\ 
07.
echo Bitte nur j oder n eingeben! 
08.
goto :Eingabe
Was nun, wenn jemand rein zufällig die * taste drückt?
... ist mir allerdings nicht so ganz klar ...

Grüße
bastla

P.S.: Bitte Code-Formatierung verwenden ...
Bitte warten ..
Mitglied: 99045
28.08.2011 um 19:23 Uhr
vor Zeile 4 einfügen:
Bitte warten ..
Mitglied: bastla
28.08.2011 um 19:27 Uhr
@99045
Warum?

Grüße
bastla
Bitte warten ..
Mitglied: 99045
28.08.2011 um 19:33 Uhr
@bastla

weil ich im falschen Film war? Vergiss es.

Aber man könnte die Zeile 03 abändern in
set /p einverstanden=Einverstanden: (J / N) 
Nachtrag: Und dann sollte man als Sprungmarken keine Labels verwenden, die auch z. B. als Batch-Parameter oder Programme existieren können wie z. B. "start". Irgendwann für das nur zu Problemen.
Bitte warten ..
Mitglied: Kalamari
28.08.2011 um 19:39 Uhr
Hallo

Vielen Dank!
Klappt einwandfrei.
Es ist so einfach, aber wenn man davor sitzt sieht man den Wald vor lauter Bäumen nicht.
Jetzt hinterher - total logisch

Danke!
Bitte warten ..
Mitglied: Biber
28.08.2011 um 19:53 Uhr
Moin Kalamari,

ich würde aber dennoch Kaputtnicks Gedanken aufgreifen und zusätzlich nur nach dem Variablenwert einverstanden=J abfragen und prüfen.
01.
set /p einverstanden=Einverstanden: (J / N) ? 
02.
If /i "%einverstanden%"=="J" goto :allesPrima 
03.
goto :dannHaltNicht
Grüße
Biber
Bitte warten ..
Mitglied: OKIDOKI
24.02.2012 um 12:14 Uhr
Hallo,

ich bekomme die Meldung, dass GOTO an dieser Stelle syntaktisch nicht verarbeitbar ist, was mache ich falsch?

OKIDOKI
Bitte warten ..
Mitglied: bastla
24.02.2012 um 12:57 Uhr
Hallo OKIDOKI!
was mache ich falsch?
Zunächst schon einmal, dass Du nicht Deinen Code (entsprechend formatiert) postest ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
24.02.2012 um 14:01 Uhr
peinlich ...

01.
:verz1 
02.
ECHO Verzeichnis wechseln [w] oder Rootverzeichnis [r] ? 
03.
ECHO\ 
04.
SET /P M= w/r, dann ENTER:  
05.
IF %M%==r GOTO :weiter 
06.
IF %M%==w GOTO :ver_loop 
07.
echo\ 
08.
echo Bitte nur r oder w eingeben! 
09.
goto :verz1 
10.
 
11.
:ver_loop 
12.
ECHO Directory so eingeben z.B.: hauptverzeichnis 
13.
set /p var_a=cd  
14.
>>".\config.txt" ECHO  %var_a%  
15.
 
16.
:verz 
17.
ECHO Weiter wechseln [w] oder Zielverzeichnis [z] erreicht ? 
18.
ECHO\ 
19.
SET /P M= Auswahl w/z , dann ENTER:  
20.
IF %M%==z GOTO :weiter 
21.
IF %M%==w GOTO :ver_loop 
22.
echo\ 
23.
echo Bitte nur w oder z eingeben! 
24.
goto :verz 
25.
 
26.
:weiter 
27.
:: hier gehts weiter

Grüße OKIDOKI
PS: Wie hält man die Unwissenheit von uns bloß aus ...
Bitte warten ..
Mitglied: bastla
24.02.2012 um 16:13 Uhr
Hallo OKIDOKI!

Wenn es nicht auf beiden Seiten des "==" Werte gibt, geht das daneben - daher etwa:
if /i "%M%"=="r" goto :weiter
Hier wurde auch gleich noch für eine ev klemmende Shift-Taste vorgesorgt, sodass auch die Eingabe von R akzeptiert wird ...
Es würde sich übrigens auch Zeile 13 noch eine Überprüfung der Eingabe anbieten ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
24.02.2012 um 16:44 Uhr
Super!

Zeile 13: Hier meinst du wahrscheinlich das "cd"? Dies soll am Anfang der Eingabe vorgegeben sein, weil es hier um den Verzeichnisechsel geht...

Dankeschön
OKIDOKI
Bitte warten ..
Mitglied: bastla
24.02.2012 um 16:58 Uhr
Hallo OKIDOKI!
Zeile 13: Hier meinst du wahrscheinlich das "cd"?
Nein; ich würde prüfen, ob überhaupt etwas eingegeben wurde, und wenn ja, ob der entsprechende Ordner existiert ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
24.02.2012 um 17:09 Uhr
Hallo bastla,
ja das ist natürlich richtig, vielleicht so?

01.
if defined var_a (GOTO weiter) else (GOTO error)
Gruß OKIDOKI
Bitte warten ..
Mitglied: bastla
24.02.2012 um 17:18 Uhr
Hallo OKIDOKI!

Ja, und zusätzlich ein
if not exist %var_a% (echo Den Ordner "%var_a%" gibt's nicht - bitte neu eingeben! & goto :ver_loop
Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
24.02.2012 um 19:56 Uhr
Hallo bastla,

jetzt dachte ich schon ich habs laaangsam, da kommst du und setzt noch einen drau!

Vielen Dank euch,
OKIDOKI
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Kein Wert nach set slash p
Frage von playmenBatch & Shell2 Kommentare

Hallo Zusammen Ich beschäftige mich nun seit ca. 2h damit warum das nicht klappt, respektive erst nach dem 2. ...

Batch & Shell
Batch set p ?
gelöst Frage von dax4funBatch & Shell3 Kommentare

Hi , brauche eine kleine Hilfe ich will per ftp eine Routine steuern ich habe auf dem FTP Server ...

Windows 10
Cortana nimmt falsche Eingabe - Programmname ändern, aber wie?
Frage von complexWindows 102 Kommentare

Hallo zusammen, meine Frage ist etwas tricky, aber ich finde keinen anderen Weg: Mein Ziel war es, ein sprachgesteuertes ...

Batch & Shell
Variablen und Set
gelöst Frage von CerauxBatch & Shell2 Kommentare

Hallo, ich weiß nicht wie man mehrere Wörter in eine Variable machen? Also so: if %var1%%var2% echo Hallo %var1%=Dies ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 11 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 18 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 23 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...