If-then-Anweisung in der For-Schleife

If-then-Anweisung in der For-Schleife

Ich bin ein Neuling in Sachen Windows-Scripting. Meine Skripte suchen nach Strings in der Datei, zählen den String und prüfen den Rückgabecode in der if then else-Anweisung. Aber ich habe eine Frage: Einige Fehler in der if then-Anweisung zeigen [%i], was zu diesem Zeitpunkt unerwartet war.

@echo off
cd C:\script\
for /f "tokens=3" %%i in ( 'find /C "ANR2034E" checkout.txt' ) do ( echo %%i )
if [/I] [%%i] == [1]  ( echo %%i ) else ( echo No ) )

Darüber hinaus: Kann ich eine if-Anweisung in die for-Schleife integrieren?

Beispiel:

for %%i in ('command') do ( if [/I] [%%i] == [i] (command) else (command))

Antwort1

@echo off
cd C:\script\
for /f "tokens=3" %%i in ('find /C "ANR2034E" checkout.txt') do (
    echo %%i
    if [%%i]==[1] (
        echo %%i
    ) else (
        echo No
    )
)

Der Fehler ist aufgetreten, weil Sie /inach dem ifin eckigen Klammern standen. In jedem Fall /i(ohne Berücksichtigung der Groß-/Kleinschreibung) ist dies nicht erforderlich, da Sie verwendet haben, find /cwodurch nur eine Ganzzahl zurückgegeben wird.

Wie Sie sehen, ifkann die Bedingung durchaus in die forSchleife aufgenommen werden.

verwandte Informationen