如何从FINDSTR输出设置为变量

问题描述:

@echo off 
set result="" 
setlocal enabledelayedexpansion 
for /f %%i in ('FINDSTR /I /S /C:"A=1" C:\Users\Family\Desktop\saxcz find.bat') 
do set result=%%i 
) 
    echo !result! 
) else (
    echo xx 
) 
pause>nul 

是我的代码,但输出是如何从FINDSTR输出设置为变量

C:\用户\家庭\桌面\ saxcz \ find.bat:设置 XX

为什么这发生?

+1

你有一个'在你的代码else' ......哪里是属于'if'语句? – geisterfurz007

+2

和'echo!result!'前面的右括号?似乎在文件名 – elzooilogico

+1

'do'不能在一个单独的行上,它必须与前面的关闭'''在同一行中缺少反斜线!阅读此:['for'](http://ss64.com/nt/for.html) – aschipfl

不知道如果我明白你想实现的任务,但是这可能会帮助

@echo off 
setlocal enabledelayedexpansion 

set "result=" 
set/a offset=0 

for /f "tokens=3,4 delims=:" %%i in ('FINDSTR /N /I /S /C:"A=1" C:\Users\Family\Desktop\saxcz\find.bat') do (
    set/a offset+=1 & set "line=0000%%i" 
    set "result[!offset!]=!line:~-4! %%j" 
) 

if %offset% neq 0 (
    echo( 
    echo(Line data 
    echo(---- --------------------------------- 
    for /L %%i in (1,1,%offset%) do echo(!result[%%i]! 
    echo(--------------------------------------- 
    echo( 
    echo(%offset% items found 
) else (
    echo(Not found 
) 
endlocal 
exit/B