PDA

Показать полную графическую версию : Двойное echo в for


dasgespenst
21-04-2017, 14:51
Почему двойное echo вылазит?

запускаю как "c:\tools\cdi\smart.cmd Model 3 0"

@echo off

SETLOCAL DisableDelayedExpansion

SETLOCAL

find "%1" %systemdrive%\tools\cdi\Diskinfo.txt | for /f "tokens=%2 delims=;" %%f in ('findstr /R "^%3"') do echo %%f

ENDLOCAL

Выходит

с:\tools\cdi\> echo "WDC 100500"
WDC 100500

Elven
21-04-2017, 16:12
@echo off

SETLOCAL DisableDelayedExpansion

SETLOCAL

find "%1" %systemdrive%\tools\cdi\Diskinfo.txt | for /f "tokens=%2 delims=;" %%f in ('findstr /R "^%3"') do @echo %%f

ENDLOCAL

Iska
21-04-2017, 19:22
dasgespenst, зачем Вам два setlocal?

alpap
21-04-2017, 19:52
как по мне так понятнее (хотя не всем пожалуй), но главное удобнее, как-то сразу видно откуда и куда:

@echo off
SETLOCAL DisableDelayedExpansion
<"%systemdrive%\tools\cdi\Diskinfo.txt">"new.txt" (for /f "tokens=%2 delims=;" %%f in ('find "%1"^|findstr /r "^%3"') do @echo %%f)
ENDLOCAL
pause




© OSzone.net 2001-2012