Zeichenfolgenvergleich in Batch-Datei
-
Zeichenfolgenvergleich mit den Befehlen
if
undif-else
in der Batch-Datei -
Zeichenfolgenvergleich mit der
for
-Schleife in der Batch-Datei
Ein String ist eine geordnete Sammlung von Zeichen.
Strings können mit bedingten Befehlen in einer Batch-Datei verglichen werden, d. h. mit den Befehlen if
, if-else
und for
. Zeichenfolgen können Leerzeichen und Sonderzeichen enthalten, was bei normaler Ausführung zu Fehlern in der Batch-Datei führen kann.
Auch wenn die Zeichenfolge ein doppeltes Anführungszeichen enthält, kann dies zu einem Fehler führen.
In diesem Tutorial werden verschiedene Möglichkeiten zum Vergleichen von Zeichenfolgen in einer Batch-Datei mit den Befehlen if
, if-else
und for
vermittelt.
Zeichenfolgenvergleich mit den Befehlen if
und if-else
in der Batch-Datei
Der if
-Befehl führt bedingte Operationen und logische Vergleiche zwischen einem eingestellten Wert und einem erwarteten Wert durch. Es kann prüfen, ob eine Datei existiert, Zeichenfolgen vergleichen und sogar auf Fehler prüfen.
Zeichenkettenvergleich mit dem if
-Befehl
Nehmen wir ein Beispiel, um zu prüfen, ob die Zeichenfolgen gleich sind. Wenn sie gleich sind, wird die Ausgabe mit dem Befehl echo
angezeigt.
@echo off
SetLocal
set string1="Hello World"
set string2="Hello World"
if %string1% == %string2% (echo "Both the strings are equal")
cmd /k
Ausgang:
Zeichenkettenvergleich mit dem if-else
-Befehl
@echo off
SetLocal
set string1="Hello World"
set string2="HELLO WORLD"
set string3="Hello World"
if %string1% == %string2% (echo string 1 and string 2 are equal echo the string is %string2%) else if %string1% == %string3% (echo string1 and string 3 are equal
echo the string is %string3%) else (echo all strings are different)
cmd /k
Ausgang:
Notiz:
- Lassen Sie keine Leerzeichen zwischen den Klammern.
- Wenn die Zeichenfolgen oder Variablen Leerzeichen oder Sonderzeichen enthalten, setzen Sie sie in doppelte Anführungszeichen.
Mit dem Befehl if
können Sie /I
für einen String-Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung und NOT
verwenden, um den Befehl auszuführen, wenn die Bedingung falsch ist.
Sie können auch Vergleichsoperatoren wie EQU
(gleich), NEQ
(ungleich), LSS
(kleiner als), LEQ
(kleiner oder gleich), GTR
(größer als oder gleich) verwenden bis), GEQ
(größer oder gleich) zum Vergleich der Werte. Diese Operatoren können jedoch nicht zum Vergleichen von Zeichenfolgen verwendet werden.
Vergleich von Zeichenfolgen mit doppelten Anführungszeichen mit dem Befehl if-else
Wenn der String oder die Variablen doppelte Anführungszeichen enthalten, aktivieren Sie die verzögerte Erweiterung mit dem Befehl SetLocal
. Verwenden !
anstatt "
.
Der Code dafür wird im folgenden Beispiel gezeigt:
@echo off
SetLocal EnableDelayedExpansion
set string1="Hello "World""
set string2=""HELLO WORLD""
set string3="Hello World"
if !string1! == !string2! (echo "string 1 and string 2 are equal") else if !string1! == !string3! (echo "string1 and string 3 are equal") else (echo "All strings are different")
cmd /k
Ausgang:
Zeichenfolgenvergleich mit der for
-Schleife in der Batch-Datei
Der Befehl for
wird verwendet, um einen bestimmten Befehl für jede Datei innerhalb eines Satzes von Dateien auszuführen.
Die Syntax des for
-Befehls in einer Batch-Datei wird gezeigt.
for {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]
Nehmen wir ein Beispiel, bei dem wir die Zeichenfolgen vergleichen müssen, um die Windows-Betriebssystemversion anzuzeigen:
@echo off
SetLocal EnableDelayedExpansion
for /f "usebackq tokens=1 delims=" %%I in ("C:\Users\Aastha Gas Harda\Desktop\testfile1.txt") do (
set string=%%I
echo %%I
if "%%~I" == "HelloWorld" (echo "match found") else (echo "match not found")
)
PAUSE
Ausgang:
Im obigen Beispiel wird eine for
-Schleife verwendet, um den String-Wert zu vergleichen. Wenn der Zeichenfolgenwert gleich HelloWorld
ist, wird die Ausgabe als Übereinstimmung gefunden
angezeigt.
Die delims
geben einen Trennzeichensatz an, und die tokens
geben an, welche Tokens aus jeder Zeile an die for
-Schleife übergeben werden. Das usebackq
muss immer dann verwendet werden, wenn wir in der for
-Schleife Anführungszeichen verwenden.
Wir haben also verschiedene Möglichkeiten zum Vergleichen von Zeichenfolgen in Batch-Dateien besprochen. Neben dem Vergleich von Zeichenfolgen können diese bedingten Befehle auch verwendet werden, um bestimmte Werte oder Text aus Textdateien oder Protokolldateien zu finden.