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

gelöst Batchscript mit Benutzereingabe - Variable überprüfen misslingt

Mitglied: LittleFlame

LittleFlame (Level 1) - Jetzt verbinden

10.08.2011, aktualisiert 18.10.2012, 6766 Aufrufe, 15 Kommentare

Hallöchen liebe Administratorengemeinde.
Ich versuche gerade, mithilfe des Batch Workshops (Part II) von Biber ein Script zu bauen.
Leider scheitere ich und verstehe nicht warum.

Das Script soll je nach Benutzereingabe bestimmte IP-Adressen anpingen und die Erreichbarkeiten in ein Logfile schreiben.
Soweit ja verständlich.

Ich habe nun folgendes versucht, um die Benutzereingabe zu überprüfen.


01.
Set /P NETZ="Welches Netzwerk ueberpruefen? (NETZ1 - NETZ6)"
02.
If /i %NETZ%=="NETZ1" set NETZ=NETZ1 
03.
If /i %NETZ%=="NETZ2" set NETZ=NETZ2
04.
If /i %NETZ%=="NETZ3" set NETZ=NETZ3 
05.
If /i %NETZ%=="NETZ4" set NETZ=NETZ4 
06.
If /i %NETZ%=="NETZ5" set NETZ=NETZ5 
07.
If /i %NETZ%=="NETZ6" set NETZ=NETZ6 
08.
for %i in (NETZ1 NETZ2 NETZ3 NETZ4 NETZ5 NETZ6) do if (%NETZ%)==(%i) goto %NETZ%
Danach folgen natürlich die Abschnitte für die verschiedenen Netze.

In der letzten Zeile habe ich anscheinend irgendeinen Fehler, der zu folgender Ausgabe führt:

"NETZi)" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Was genau ist mein Fehler?

Und eine zweite unwichtigere Frage: Lassen sich die Zeilen 2-7 ebenfalls noch sinnvoll in eine Schleife packen?


Vielen Dank im voraus,
LF
Mitglied: Skyemugen
10.08.2011 um 10:32 Uhr
Aloha,

... vergleiche niemals Zollzeichen mit Luft.

%NETZ%=="NETZ1" Kann niemals passen.

Hoffe, das genügt dir als Gedankenblitz.

greetz André

edit: Ah, da war ja noch eine zweite Frage *gg* - gut, beantworten wir diese mit Ja und ziehen uns erst einmal frech grinsend zurück

P.S.: Was machst du, wenn eine falsche Eingabe erfolgt?

tja, das mit dem %i statt batchlike gedoppelt, überliest man auch mal
Bitte warten ..
Mitglied: LittleFlame
10.08.2011 um 10:41 Uhr
Hmmm... vielleicht verstehe ich nicht, was genau du meinst, aber sowohl
01.
If /i %NETZ%=="NETZ1" set NETZ=NETZ1  
als auch

01.
If /i %NETZ%==NETZ1 set NETZ=NETZ1  
tun das, was ich will.


Edit: Mist. Ich sollte meine Frage spezifizieren. Man frägst auch nicht "wissen Sie, wieviel Uhr es ist?", sondern "Entschuldigen Sie, wieviel Uhr ist es?" :-P
Kannst du mich bzgl dieser Schleife in die Richtige Richtung lotsen?
Ich weiss, dass ich dann mit ganz vielen % arbeiten muss, und da komm ich dann durcheinander

PS: Falls falsche Eingabe, dann ein echo mit "Falsche Eingabe und :eof"
Is ja nur n S(ch)nip-sel
Bitte warten ..
Mitglied: bastla
10.08.2011 um 10:43 Uhr
... und noch als Anmerkung zur letzten Zeile: Wenn das Ganze ein Batch sein (werden ) soll, wäre "%%i" anstelle von "%i" angebracht ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
10.08.2011 um 10:44 Uhr
Hallo LittleFlame!

Wenn beide genannten Zeilen funktionieren, dann aber nur, weil jeweils unterschiedliche Eingaben erfolgen (im ersten Fall mit Anführungs-/"Zoll"-Zeichen, im zweiten Fall ohne) ...

Grüße
bastla
Bitte warten ..
Mitglied: LittleFlame
10.08.2011 um 10:48 Uhr
Irks... ok... bin schon still. Hab zumindest meinen Fehler bzgl. der "ZOLL"-Zeichen verstanden und verbessert.

Aber die Geschichte mit %%i verursacht

""NETZNETZ" ist syntaktisch an dieser Stelle nicht verarbeitbar."

Bitte warten ..
Mitglied: bastla
10.08.2011 um 10:56 Uhr
Hallo LittleFlame!

Ich würde auch nicht unbedingt zu Klammern als "Begrenzungszeichen" raten - bleibe einfach bei den "Zollzeichen" ...
Hinsichtlich der gefragten Schleife:
Wenn es nur darum ginge, jeweils ein
goto :gewähltesNetz
auszuführen, sollte sich das vielleicht so machen lassen:
01.
if defined NETZ findstr /i /x ":%NETZ%" %0 >nul && goto :%NETZ%
02.
echo Falsche Eingabe
03.
goto :eof
Die Idee dahinter: Durchsuche den aktuellen Batch (%0) nach einer Zeile ":gewähltesNetz" und, wenn gefunden, springe dort hin ...

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
10.08.2011 um 11:00 Uhr
Aloha bastla,

(gut du bist noch am rumeditieren deines Codes, wie ich mehrfach bemerkt habe )

Warum goto :eof?
Warum nicht
:Eingabe
if ...
echo Falsche Eingabe - zum Abbrechen STRG+C drücken
goto :Eingabe

Wer falsch tippt, darf noch einmal ^_^

greetz André

edit: @bastla, seit wann machen wir punktgenau das, was der TE möchte Dachte, wir weisen auf mögliche Optimierungen lieber hin ...
Bitte warten ..
Mitglied: bastla
10.08.2011 um 11:07 Uhr
@Skyemugen
Warum goto :eof?
Wunsch des TE :
Falls falsche Eingabe, dann ein echo mit "Falsche Eingabe und :eof"

Grüße
bastla

[Edit]
Dachte, wir weisen auf mögliche Optimierungen lieber hin ...
Machst Du doch ohnehin ...

...wenngleich eine Optimierung für mich hieße, dass die Benutzer nur noch eine Zahl von 1 bis 6 (anstelle von "NETZ" + Zahl) eingeben müssten ...
[/Edit]
Bitte warten ..
Mitglied: Skyemugen
10.08.2011 um 11:09 Uhr
Aloha,

for %%i in (NETZ1 NETZ2 NETZ3 NETZ4 NETZ5 NETZ6) do if (%NETZ%)==(%%i) goto %NETZ% funktioniert einwandfrei auch wenn die Klammern ... nunja nicht das Wahre sind.

Noch als Hinweis: Setze Variablen komplett mit Inhalt in Zollzeichen, um die Leerzeichen am Ende-Problematik hier zu vermeiden, die unangenehme Nebenwirkungen hat außer bei NETZ2 existiert überall ein Leerzeichen dahinter, unschön, kann nicht funktionieren ^_^
set "Var=Inhalt"

greetz André
Bitte warten ..
Mitglied: LittleFlame
10.08.2011, aktualisiert 18.10.2012
So, vielen Dank an alle. Ich hab meine Fehler gefunden und die Optimierungsvorschläge überdacht und eingearbeitet.

Jetzt möcht ich aber kurz noch eine Frage stellen:
Im Workshop Batch for Runaways - Part II gibt es am Anfang einen Codeschnipsel, an dem ich mich orientiert hab.
(Der ist zwar nicht wirklich ernst gemeint, aber soll einen Batch-Code darstellen)
Die angesprochenen Dinge sind in diesem Script also auch falsch oder?


Grüße und vielen Dank,
LF
Bitte warten ..
Mitglied: bastla
10.08.2011 um 12:07 Uhr
Hallo LittleFlame!
Die angesprochenen Dinge sind in diesem Script also auch falsch oder?
Zumindest sollte keine Zeile (und schon gar nicht die Zeilen 4-6) eine ungerade Anzahl von " enthalten (was aber interessanter Weise fast 6 Jahre lang niemanden gestört hat bzw eher niemandem aufgefallen ist - ich habe offensichtlich auch gleich bei ":NewbieStuff" zu lesen begonnen) ...

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
10.08.2011 um 12:13 Uhr
Aloha,

sogar noch fataler *gg* dort steht es anfangs mit nur einem Zollzeichen also Biber, Biber

muss gestehen, habe mir hier bisher noch keine Tutorials angeguckt, wer merkt sich schon den Hauf' an Informationen ... learning by doing und zur Not asking finde ich viel effektiver

greetz André

edit: too late unser Elektrotechniker kam mit einem Anruf beim Posten dazwischen ;D
Bitte warten ..
Mitglied: Biber
10.08.2011, aktualisiert 18.10.2012
Moin LittleFlame,

Zitat von LittleFlame:
So, vielen Dank an alle. Ich hab meine Fehler gefunden und die Optimierungsvorschläge überdacht und eingearbeitet.

Jetzt möcht ich aber kurz noch eine Frage stellen:
Im Workshop Batch for Runaways - Part II gibt es am Anfang einen
Codeschnipsel, an dem ich mich orientiert hab.
(Der ist zwar nicht wirklich ernst gemeint, aber soll einen Batch-Code darstellen)
Die angesprochenen Dinge sind in diesem Script also auch falsch oder?
Ja nee, das is' mir ja so was von peinlich.....

Das war wirklich ein durch Copy&Paste verdreifachter Tippfeh Pfusch.
Ich gelobe mich zu bessern.

Jedenfalls habe ich im Tutorial-Intro noch ein paar von diesen Dingern, für die hier im Forum das Fachwort "Zollzeichen" geprägt wurde, spendiert.

Grüße und ich freue mich immer, wenn jemand sich tatsächlich mal durch eines dieser Workshop-Tuts quält.

Biber
Bitte warten ..
Mitglied: Skyemugen
10.08.2011 um 19:13 Uhr
Aloha Biber,

ähm ...

If /i "%Leser"%=="M" set Leser=Advanced

verschlimmbessern gilt aber nicht

greetz André

P.S.: Zeile 05
Bitte warten ..
Mitglied: Biber
10.08.2011 um 23:45 Uhr
[OT]
Moin Skyemugen,

Zitat von Skyemugen:
Aloha Biber,

ähm ...

> If /i "%Leser"%=="M" set Leser=Advanced

verschlimmbessern gilt aber nicht
Okay, okay, ich habe es aber wenigstens versucht...

Ich hoffe nur, dass wenn mir dereinst aus dem Buch des Lebens vorgelesen wird, wenigstens dann alle Zitate in einer geraden Anzahl von Anführungszeichen stehen.
Wahrscheinlich sind auch die Kerben auf dem Schwert von Erzengel Gabriel in Wirklichkeit "Zollzeichen". *gg

Jedenfalls ist dieses Forum manchmal ein gutes Training für das Jüngste Gericht, scheint mir.

Danke für den Hinweis - ich habe es nochmals nachverschlimmgebessert...ähhm verschlimmnachgebessert.... also nochmal geändert..

Grüße
Biber
[/OT]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Rechteveragbe über Batchscript
gelöst Frage von sanaitBatch & Shell7 Kommentare

Moin Moin, ich habe mir ein Laufwerk gemappt und will nun dort in einem Script die Rechte in den ...

Microsoft

WSUS Defenderupdateverteilung misslingt seit 3 Tagen auf Win10

gelöst Frage von DerWoWussteMicrosoft12 Kommentare

Moin. Definition Update for Windows Defender - KB2267602 (Definition 1.239.677.0) - Error 0x80070643 Seit mehreren Tagen installieren die win10-Clients ...

Windows Userverwaltung

Berechtigungen Windows Server 2016 - Batchscript editieren

gelöst Frage von KMUlifeWindows Userverwaltung11 Kommentare

Hallo zusammen! Meine Haare werden langsam grau aufgrund der Berechtigungslogik von Microsoft. Ich hoffe ein paar von euch können ...

Batch & Shell

Batchscript führt im Task Planer die Aktionen nicht aus

gelöst Frage von Ch3p4cKBatch & Shell5 Kommentare

Hallo zusammen, nun setze ich mal meine Hoffnung in die Community. Ich habe gerade auf einem Windows Server 2008 ...

Neue Wissensbeiträge
Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 20 StundenInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter die Seitenbetreiber ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 22 StundenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 23 StundenGoogle Android1 Kommentar

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Exchange Server

Exchange 2010 bis 2019 Sicherheitslücke durch CU RU schließen

Information von sabines vor 1 TagExchange Server

Für die hier: und hier: besprochene Sicherheitslücke ist ein Patch für Microsoft Exchange Server 2010 - 2019 verfügbar. RU ...

Heiß diskutierte Inhalte
Windows 10
Windows Update funktioniert nicht - Keine Verbindung mit dem Updatedienst
gelöst Frage von anveWindows 1030 Kommentare

Hallo, ich kann schon länger keine Updates mehr machen. Wenn ich auf Update suchen gehe, dann schreibt er folgendes: ...

LAN, WAN, Wireless
NETBEUI unter Windows 10
Frage von certifiedit.netLAN, WAN, Wireless26 Kommentare

Guten Abend, wir stehen gerade vor dem Rästel, warum man in einer Industriemaschine (wert gut 6-stellig, paar mal vorhanden) ...

Hardware
Was passiert wenn ein Server zu heiß wird?
Frage von LohrakHardware21 Kommentare

Hallo Sollte ein Server zu heiß werden, da z.B ein Lüfter ausfällt, was würde passieren? Wie meldet sich der ...

Internet
EU-Gremien einigen sich auf die schärfste Form von Upload-Filter und Leistungsschutzrecht
Information von FrankInternet17 Kommentare

Nun ist es . Die Verlage, die in der Vergangenheit das Internet verschlafen hatten und kurz vor ihrer Auflösung ...