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, 6722 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
Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 21 StundenSonstige Systeme4 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 1 TagDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Windows 10

Macht Windows 10.1809 Probleme mit gemappten Netzlaufwerken (betrifft wohl insbes. AMD-Hardware und Trend Micro AV-Produkte)?

Tipp von VGem-e vor 1 TagWindows 103 Kommentare

Moin Kollegen, grad dazu gefunden und Hatten wir dies nicht bei früheren W10-Upgrades ebenfalls? Da bleibt nur, das Upgrade ...

Humor (lol)

Das neue Miniatur Wunderland OFFICIAL VIDEO - worlds largest model railway - railroad

Information von StefanKittel vor 1 TagHumor (lol)2 Kommentare

Hallo, wer noch nie im Miniatur Wunderland war, sollte es dringend mal nachholen. Es gibt eine neues Video. Viele ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Werksreset HP 1920S-24G
gelöst Frage von HenereNetzwerkgrundlagen14 Kommentare

Servus zusammen, ich habe mir 2 neue Switche zugelegt, doch ich komme damit nicht ganz klar. Waren Vorführgeräte zum ...

DSL, VDSL
DSL Monitoring Tool - Quick and dirty?
Frage von george44DSL, VDSL14 Kommentare

Liebe Gemeinde, ich suche ein einfaches und vor allem schnell zu installierendes Monitoring-Tool zur kontinuierlichen Dokumentation (nur) der Internetanbindung. ...

Firewall
Sophos UTM 9.5 Firewall Log-File durchsuchen
gelöst Frage von Leo-leFirewall13 Kommentare

Hallo zusammen, weiß jemand von Euch, ob man bei der Sophos die Firewall logs noch etwas besser filtern kann? ...

LAN, WAN, Wireless
Gäste-WLAN durch DD-WRT AP nach einem MikroTik Routerboard
Frage von NukolarLAN, WAN, Wireless12 Kommentare

Hallo, wie der Titel schon sagt möchte ich gerne ein Gäste-WLAN innerhalb eines bestehenden LANs einrichten. Dass die Gäste ...