嵌套的FOR-Loop和IF条件的问题

时间:2019-12-05 15:00:34

标签: batch-file search cmd substring

我有几行文字。然后我有一个带有测试词的列表。我想查找文本的每一行,并检查其中是否有测试词之一。 预先使用以下命令可以很好地解决此问题:

IF not "!stringToTest:%searchstring%=!"=="!stringToTest!"

但是,由于我嵌套了循环,现在这似乎更加复杂了?

我尝试为我的问题创建一些MWE:

@echo off
setlocal enabledelayedexpansion
set /a counterPC=0
set "listPC=Win10,Motherboard,USB-Port,Core"
FOR %%G in (%listPC%) do (
    set PCsearchVal[!counterPC!]=%%G
    set /a counterPC+=1
)
set /a counterPC-=1
set "dummyline=Environment,1234,ZUIOP,Core"
FOR %%G in (%dummyline%) do (
    set "stringToTest=%%G"
    echo String to Test: !stringToTest!  
    FOR /l %%I in (0,1,%counterPC%) do ( 
        set "searchstring=!PCsearchVal[%%I]!"
        echo Test for this String: !searchstring!
        IF not "!stringToTest:%searchstring%=!"=="!stringToTest!" echo Searchstring is in String to Test
    )     
)
endlocal
pause

在此,他始终输入IF条件。我知道可以使用FINDSTR解决此问题,但是在我所有其他代码中,我都使用了上面的search-strategy liek。我可能会发现一个小错误?提前非常感谢-

0 个答案:

没有答案