批处理脚本 - 错误如果语法

时间:2017-10-08 14:05:02

标签: batch-file

我正在尝试检查我创建的数组中的文本,如果我没有使用"如果"每件事都有效,我可以使用" echo"但是当我添加" if"命令我得到"错误的语法"

@echo off
setlocal ENABLEDELAYEDEXPANSION

set i=0

for /f "delims= " %%a in ('command') do (

set /A i+=1
set list[!i!]=%%~a
)

set Filesx=%i%

rem Display array elements
for /L %%i in (1,1,%Filesx%) do (
    if list[%%i] =="some ttext"
        echo !list[%%i]!
)

2 个答案:

答案 0 :(得分:1)

我会考虑相应地更改你的脚本:

@Echo Off
SetLocal EnableDelayedExpansion

Set "i=0"
For /F %%A In ('command') Do (Set/A i+=1
    Set list[!i!]=%%~A)

Rem Display array elements
For /L %%A In (1,1,%i%) Do If /I "!list[%%A]!"=="some ttext" Echo !list[%%A]!

Pause

在您的脚本中,您需要将if list[%%i]更改为If /I "!list[%%i]!"

@echo off
setlocal ENABLEDELAYEDEXPANSION

set i=0

for /f "delims= " %%a in ('command') do (

    set /A i+=1
    set list[!i!]=%%~a
)

set Filesx=%i%

rem Display array elements
for /L %%i in (1,1,%Filesx%) do (
    if /i "!list[%%i]!" =="some ttext" (
        echo !list[%%i]!
    )
)

答案 1 :(得分:0)

if语句需要完全匹配(对于==equ),因此如果您引用一方,则需要引用另一方。< / p>

此外,if-true条件的操作必须与if

在同一物理线上