2016-09-20 2 views
2
@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: \ Users \ Family \ Desktop \ saxcz \ find.bat: набор хх

почему это происходит?

+1

У вас есть 'else' в вашем коде ... Где принадлежности' if'-заявление? – geisterfurz007

+2

и закрывающей круглой скобкой перед 'echo! Result!'? также кажется, что недостающая обратная косая черта в имени файла – elzooilogico

+1

'do' не может быть на отдельной строке, она должна быть в той же строке, что и предыдущая закрывающая') '! Прочтите это: ['for'] (http://ss64.com/nt/for.html) – aschipfl

ответ

1

Не уверен, если я понимаю задачу, которую вы пытаетесь достичь, но это может помочь

@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 
Смежные вопросы