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, 1881 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
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 ...

Debian
gelöst Postfix prüft IPs alle MTA User auf SPAM (9)

Frage von tylerdurden21 zum Thema Debian ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...