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, 6653 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

Text Zeilenweise auslesen und variable überprüfen

Frage von BruendlBatch & Shell11 Kommentare

Moin Moin, ich habe eine Textdatei mit folgendem Inhalt: ich möchte jetzt gerne die beiden Werte, die von einem ...

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 Tools

In den Druckvorgang eingreifen - Benutzereingabe und Ausdruck Barcode

Frage von DeeJayBeeWindows Tools3 Kommentare

Hallo zusammen, ich möchte diverse Dokumente ausdrucken (E-Mail, Word-Datei, PDF, etc) und dabei auf dem Ausdruck in einer Ecke ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 21 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk13 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...