Instrução If then no loop for

Instrução If then no loop for

Sou novato em scripts do Windows. Meus scripts pesquisariam a string no arquivo, se contassem a string e verificassem o código de retorno na instrução if then else. Mas tenho dúvidas, algum erro na instrução if then show [%i] foi inesperado neste momento.

@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 ) )

Além disso, posso integrar a instrução if no loop for?

exemplo:

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

Responder1

@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
    )
)

O erro ocorreu porque você estava /ientre ifcolchetes. Em qualquer caso /i(insensibilidade a maiúsculas e minúsculas) não é necessário porque você usou find /cwhich retornará apenas um número inteiro.

Como você pode ver, a ifcondição pode definitivamente ser incluída no forloop.

informação relacionada