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

Batch: Zeichen in Variable suchen

Frage Microsoft Windows Tools

Mitglied: hatzwatz

hatzwatz (Level 1) - Jetzt verbinden

25.12.2006, aktualisiert 26.12.2006, 9607 Aufrufe, 6 Kommentare

Hallo,

ich möchte gerne in einer Variablen (einfache Windows Batch-Datei) schauen, ob ein bestimmtes Zeichen gibt.

Also zum Beispiel nehmen wir die Variabel "test"

set test=c,d,e

Nun möchte ich abfragen, ob z.B. "c" in der Variablen "test" vorkommt. Je nach Ergebnis (errorlevel) möchte ich dann bestimmte Aktionen ausführen.

Leider habe ich noch keine Möglichkeit gefunden. Vielleicht kann mir ja jemand helfen

MfG

hatzwatz
Mitglied: miniversum
25.12.2006 um 19:42 Uhr
Du meinst so?

@echo off
set test=c,d,e
set errorlevel=0

for %%i in (%test%) do if [%%i]==[c] set errorlevel=1

echo %errorlevel%


miniversum
Bitte warten ..
Mitglied: hatzwatz
25.12.2006 um 22:23 Uhr
jep, klappt - genauso meinte ich das - danke

mit for-Schleifen habe ich mich noch nicht wirklich beschäftigt. Sollte ich mal tun.

Wofür brauche ich die Eckigen Klammern?

Gruß

hatzwatz
Bitte warten ..
Mitglied: miniversum
26.12.2006 um 09:53 Uhr
Die brauchst du nur das es besser aussieht.
Wenn z.B. nichts zwischen den kommas stehen würde würde er dann [] mit [c] vergleichen.
Du kannst auch die Klammern durch " ersetzen.

miniversum

PS: Teste mal bitte obs immer so geht. Diese Lösung geht halt imemr nur wenn die Variable die Form mit kommas zwischen den Zeichen hat.
Bitte warten ..
Mitglied: hatzwatz
26.12.2006 um 10:13 Uhr
in der Variable müssen die Werte durch Leerzeichen oder Komma getrennt werden. In jedem Fall stehen nachher in der Variablen die Werte durch Leerzeichen getrennt, desshalb erkennt die FOR Schleife die auch als einzelne Werte. Es ist glaube ich sogar egal, welches Zeichen man dazwischen schreibt.

Wenn ich mehrere Befehle in der ForSchleife ausführen möchte, kann ich die ja in Klammern setzen. Wenn ich innerhalb dieser Schleife dann eine Ausgabe machen möchte, hat er anscheinende die Variablen noch nciht zugeordnet!? Kann das sein?

Wenn ich also in der Schleife echo %errorlevel% ausgebe, dann erhalte ich 0 und wenn ich das nach der Schleife mache, dann erhalte ich 1 (weil der Wert gefunden wurde).

Gruß

hatzwatz
Bitte warten ..
Mitglied: miniversum
26.12.2006 um 10:57 Uhr
Ja die Zuordnung geshcieht erst nach der Forschleife. Wilst du das direkt in der Forshcleife machen geshcieht das wenn du vorher setlocal enableDelayedExpansion machst. Dann kans tdu die Variabeln gleich mit !errorlevel! abrufen.

Wenn du mehrere Befehle drin haben willst kans tdu die in klamemrn schreiben und untereinadner oder eben mit & verbunden.

Ja das meinte ich. Ist dne sichergestellt das die zu überprüfenden zeichen imemrmit Komma oder Leerstelle getrennt sind?

miniversum
Bitte warten ..
Mitglied: hatzwatz
26.12.2006 um 11:32 Uhr
jep, ist sichergestellt.

Danke Dir für die Hilfe. Hat jetzt alles so geklappt wie ich mir das vorgestellt habe

Viele Grüße und guten Rutsch

hatzwatz
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Laufwerksbezeichnung (label) in Batch als Variable nutzen (7)

Frage von tobias.mock zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(4)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft Office
Saubere HTML aus Word-Dokument (16)

Frage von peterpa zum Thema Microsoft Office ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...