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

Eine Variable mit Wildcards untersuchen

Frage Entwicklung Batch & Shell

Mitglied: martinstein

martinstein (Level 1) - Jetzt verbinden

01.07.2010 um 12:15 Uhr, 3471 Aufrufe, 4 Kommentare

Hallo,

habt Gnade und Nachsicht mit einem Noob. Ich stehe vor folgendem Problem: Ein Programm übergibt meinem Batch eine Variable, in der so ziemlich alles drinstehen kann, ohne viel System dahinter. Ich möchte jetzt, dass das Batch z. B.

echo irgendwas

ausführt, aber nur wenn die Variable folgendermaßen aussieht:

"text 12345 text * text"

Die Anführungszeichen und der Stern sind dabei wirklich vorhanden sind und 12345 für eine beliebige fünfstellige Zahl. Hat jemand einen Lösungsanstatz für mich?

Vielen Dank im Voraus und viele Grüße

Martin
Mitglied: LotPings
01.07.2010 um 12:50 Uhr
Hallo Martin,

du schreibst leider nicht genau welche Elemente vorhanden sein müssen.

Versuche es mal hiermit:
01.
@Echo off 
02.
Set Var="text 12345 text * text" 
03.
echo.%Var%|findstr "\".*[0-9][0-9][0-9][0-9][0-9].*\*.*\"" >NUL &&Echo.%Var%
Die Zeile 2 kannst du ja zum Testen variieren.
Findstr arbeitet mit rudimentären Regular Expressions:
  • das zu testende Anführungszeichen muss mit einem \ escaped werden.
  • Leerzeichen lassen sich leider nicht ohne weiteres prüfen
  • . steht für irgendein Zeichen, der Stern für eine beliebige Anzahl des vorherigen
  • [0-9] steht für eine Ziffer zwischen 0 und 9
  • der literal zu suchende Stern muss auch escaped werden
  • Die bedingte Ausführung && führt das Echo nur aus wenn der Findstr Erfolg hatte.

Gruß
LotPings

Edit: Leider kennt findstr nicht .+ für mindestens 1 Vorkommen des vorherigen Zeichen, das könnte man aber duch ..* simulieren.
Bitte warten ..
Mitglied: bastla
01.07.2010 um 16:31 Uhr
Hallo LotPings!
Leerzeichen lassen sich leider nicht ohne weiteres prüfen
Obwohl:
echo.%Var%|findstr /r /c:"\".* [0-9][0-9][0-9][0-9][0-9] .* \* .*\""
wäre vielleicht einen Versuch wert ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
01.07.2010 um 17:03 Uhr
Zitat von bastla:
Obwohl:
echo.%Var%|findstr /r /c:"\".* [0-9][0-9][0-9][0-9][0-9] .* \* .*\"" 
> 
wäre vielleicht einen Versuch wert ...
Danke Bastla,
das scheint zu gehen, die Kombination erschien mir immer nur irgendwie unlogisch, deshalb hab ich es nie probiert.

Damit .* nicht "Nichts" matcht, wäre dann
echo.%Var%|findstr /r /c:"\"..* [0-9][0-9][0-9][0-9][0-9] ..* \* ..*\"" 
 
optimal, aber da wir vom OP (noch) kein Feedback haben warten wir's mal ab

Gruß
LotPings
Bitte warten ..
Mitglied: martinstein
03.07.2010 um 11:46 Uhr
Hallo,

ich hatte ja keine Ahnung, dass das hier so schnell geht Und BESTENS funktioniert hat es auch.

Vielen Dank und viele Grüße

Martin
Bitte warten ..
Ähnliche Inhalte
Verschlüsselung & Zertifikate
SSL-Webserver-Wildcard-Zertifikate (5)

Frage von OlliPWS zum Thema Verschlüsselung & Zertifikate ...

Verschlüsselung & Zertifikate
gelöst SSl Wildcard incl Exchange (2)

Frage von theoberlin zum Thema Verschlüsselung & Zertifikate ...

Batch & Shell
Wildcard im Dateinamen möglich bei Batchdatei? (3)

Frage von imebro zum Thema Batch & Shell ...

Windows Update
gelöst MS: Update-Server-Adressen OHNE Wildcards (17)

Frage von mrserious73 zum Thema Windows Update ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (57)

Frage von pjrtvly zum Thema Internet ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (25)

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

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

DSL, VDSL
VDSL Signal via PowerLine an Fritzbox - Möglich? (19)

Frage von Seichobob zum Thema DSL, VDSL ...