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

Findstr prüft nur von 1-9

Frage Entwicklung Batch & Shell

Mitglied: ColdZero89

ColdZero89 (Level 1) - Jetzt verbinden

14.02.2013 um 14:59 Uhr, 1908 Aufrufe, 7 Kommentare

Moin,

ich hab nen Script in dem ein Menü vorhanden ist.
Danach erfolgt eine Prüfung mit findstr ob die Zahlen zwischen 1 und 11 liegen.

Wenn ich 1-9 prüfen lasse, funktioniert das script bis 9, sobald ich 10 mache, streickt es und akzeptiert nur die 1

Was muss ich im findstr ändern damit die Prüfung von 1-11 funktioniert?

01.
echo %AW%|findstr \x "[1-11]">nul && goto :wahl 
02.
echo ======================================================= 
03.
echo Fehler! Auswahl darf nur zwischen 1 und 11 liegen 
04.
echo ======================================================= 
05.
GOTO :menu
hab bisher auch nirgends was gefunden.

Gruß Zero
Mitglied: bastla
14.02.2013, aktualisiert um 16:38 Uhr
Hallo ColdZero89!

Das sollte eher so gehen:
echo %AW%|findstr \x "1 2 3 4 5 6 7 8 9 10 11">nul && goto :wahl
da in RegEx mit den eckigen Klammern ein Bereich von Einzelzeichen angegeben wird, aber keine numerische Interpretation erfolgt ...

Grüße
bastla
Bitte warten ..
Mitglied: ColdZero89
14.02.2013, aktualisiert um 16:55 Uhr
Moin,

funktioniert so auch nicht... dann kommt die Fehlermeldung: FINDSTR: 1 2 3 4 5 6 7 8 9 10 11 kann nicht geöffnet werden.

Habs auch mit eckigen Klammern drum herum probiert, auch einzelnd drum herum um jede Zahl, kein Erfolg.

Grml. Ich find sowas immer zum Haare raufen.

Gruß Zero

EDIT:
Was ich nun erstaunlich finde, wenn ich das findstr \x mache bekomme ich die Fehlermeldung: FINDSTR: 1-11 kann nicht geöffnet werden.
Mache ich findstr /x, bekomme ich nur die von mir angegebene Fehlermeldung.

Ich dreh den Slash mal um und probier deine Variante erneut.

ok - mit /x gibt die cmd die gleiche Fehlermeldung wie oben angegegeben aus.
Bitte warten ..
Mitglied: bastla
14.02.2013, aktualisiert um 17:23 Uhr
Hallo ColdZero89!

Wenn natürlich gar keine Eingabe vorgenommen wurde (und daher %AW% leer ist), gibt's auch eigentlich nix zu prüfen - daher als Absicherung dagegen:
if defined AW echo %AW%|findstr /x "1 2 3 4 5 6 7 8 9 10 11">nul && goto :wahl
Im Zweifelsfall sollte sich das aber so lösen lassen:
if defined AW echo "#1#2#3#4#5#6#7#8#9#10#11#"|findstr /c:"#%AW%#">nul && goto :wahl
Grüße
bastla

[Edit] Fehlendes "#" und "/c:" ergänzt und auch "/x" mit Slash geschrieben [/Edit]
Bitte warten ..
Mitglied: ColdZero89
14.02.2013 um 16:58 Uhr
Moin,

AW ist IMMER gesetzt. Mindestens als 0, dies passiert bei der deklarierung der Variablen und AW wird wieder auf 0 gesetzt nachdem das Programm durchgearbeitet hat und wieder ins Menü springt.

Somit ist sichergestellt das AW immer außerhalb des einzugebenen bereiches liegt.

Gruß Zero
Bitte warten ..
Mitglied: ColdZero89
14.02.2013, aktualisiert um 17:02 Uhr
Moinsen,

schick, deine zweite Lösung hats nun gebracht.

Sofern ich das richtig verstehe werden die Zahlen "gesetzt" und findstr kontrolliert AW dann mit diesen - umgedrehtes prüfen sozusagen. Sehr cool.

Hier nun der Funktionierende Code:

01.
echo "#1#2#3#4#5#6#7#8#9#10#11"|findstr "#%AW%#">nul && goto :wahl 
02.
echo ======================================================= 
03.
echo Fehler! Auswahl darf nur zwischen 1 und 11 liegen 
04.
echo ======================================================= 
05.
GOTO :menu
Danke und Gruß

Zero
Bitte warten ..
Mitglied: bastla
14.02.2013, aktualisiert um 17:12 Uhr
Hallo ColdZero89!

Es muss auch nach "11" noch ein "#" hin (habe ich inzwischen oben nachgetragen) ...

Um auch noch eine Eingabe "1 0" (mit Leerzeichen dazwischen) abzufangen, braucht's zusätzlich ein "/c:".

Grüße
bastla
Bitte warten ..
Mitglied: ColdZero89
15.02.2013, aktualisiert um 10:08 Uhr
Moinsen,

/c: versteh ich wenn ich mir die findstr /? durchlese, aber wenn ich das teste erscheint nur "FINDSTR: Argdument fehlt nach /c"

Hä? ^^

Gruß Zero

EDIT: Ok hab nun das Leerzeichen zwischen /c: und "#%AW%'" entfernt. Der Fehler entsteht nun nicht mehr.
Hab das ganze auch mal ohne /c: getestet. Erstaunlich was so kleine C alles bewirken können.

Danke dir

Gruß Zero
Bitte warten ..
Ähnliche Inhalte
CPU, RAM, Mainboards
gelöst Wie prüft man ECC RAM? (5)

Frage von coltseavers zum Thema CPU, RAM, Mainboards ...

Datenschutz
Wegen Vorratsdatenspeicherung: Threema prüft Wegzug aus der Schweiz

Link von magicteddy zum Thema Datenschutz ...

Batch & Shell
gelöst Findstr - code für schwieriger Abfrage gesucht (9)

Frage von reissaus73 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mal eine neue Art von Abfrage mit findstr (8)

Frage von DaTobsn zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...

Linux Netzwerk
gelöst Debian Neuinstallation 2.Netzwerkkarte keine Verbindung (10)

Frage von terminator zum Thema Linux Netzwerk ...