
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 /i
nach dem if
in eckigen Klammern standen. In jedem Fall /i
(ohne Berücksichtigung der Groß-/Kleinschreibung) ist dies nicht erforderlich, da Sie verwendet haben, find /c
wodurch nur eine Ganzzahl zurückgegeben wird.
Wie Sie sehen, if
kann die Bedingung durchaus in die for
Schleife aufgenommen werden.