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, 1902 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
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
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

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

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...