2017-10-08 49 views
0

我想檢查我創建的數組中的文本,如果我不使用「如果」每件事情都有效,我可以使用「回聲」,但是當我添加「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]! 
) 
+0

不應該在'echo!list [%% i]!'命令周圍出現括號嗎? – melpomene

+0

不這麼認爲,無論如何,我加了他們,結果是一樣的 – user2420171

回答

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]! 
    ) 
) 
0

if語句需要一個確切的匹配(爲==equ),所以如果你引用一個方面,你需要引用其他。

另外,對於是否真狀態的動作一定要在同一個物理線爲if

+0

試過了,仍然不是 – user2420171

+0

和我的附錄......? – Magoo