Windows 将find的结果导入变量

Windows 将find的结果导入变量,windows,batch-file,Windows,Batch File,我想把find命令的结果转换成一个名为“String3”的变量,如下所示 Set String3=0 for /L %%i in (1,1,%index%) do echo !URL[%%i]! | find /I "%String3Search%">nul | ( !String3! ) 然而,我得到以下错误 该命令的语法不正确 索引包含Internet Explorer中打开的网站数。因此,该发现正在确定“String3Search”是否存在 我哪里出了问题 提前谢谢 您可以使用

我想把find命令的结果转换成一个名为“String3”的变量,如下所示

Set String3=0

for /L %%i in (1,1,%index%) do 
echo !URL[%%i]! | find /I "%String3Search%">nul | ( !String3! )
然而,我得到以下错误

该命令的语法不正确

索引包含Internet Explorer中打开的网站数。因此,该发现正在确定“String3Search”是否存在

我哪里出了问题


提前谢谢

您可以使用
FOR/F
命令捕获正在运行的其他命令的结果。还要注意括号的使用

@echo off
setlocal enabledelayedexpansion
Set "String3=0"
set "String3Search=findme"

for /L %%i in (1,1,%index%) do ( 
    FOR /F "delims=" %%G IN ('echo !URL[%%i]! ^| find /I "%String3Search%"') DO (
        set "String3=%%G"
    )
)

在命令提示符窗口中键入
for/?
,找出语法错误……您需要第二个嵌套的
for
命令来捕获
find
命令的结果。@Squashman这是什么样子?抱歉,我曾尝试在线阅读,但每篇文章都建议查找文件,而我正在使用索引和网站。@aschipfl我的语法是正确的,因为我相信我正在使用命令扩展名。如果我错了,请纠正我。@Uhujkill,不,你的代码不正确。为了使
ECHO
命令在单独的行上工作,需要使用括号。我会在我的答案中更新你的代码。非常感谢。它是有效的,如果它再次出现,我会记住这种格式。再次感谢。