apozlevich |
18-10-2012 10:00 2007681 |
%errorlevel% внутри цикла всегда 0
Проблема:
Код:
for /f "skip=1 tokens=1,2 delims=|" %%i in (%1) do (
for /f "delims=" %%k in (%%i.txt) do (
something.exe %%k %%i
echo %errorlevel%
)
)
Выводит 0, а просто
Код:
something.exe %%k %%i
echo %errorlevel%
выводит 1. В чем дело?
...переделав все в две метки (как советуют тут) получаю ошибку "непредвиденное появление: call" сразу же в первой строке:
Код:
for /f "skip=1 tokens=1,2 delims=|" %%i in (%1) do call :for1 %%i %%j
В упор не вижу ошибку. Люди, помогите.
|
Petya V4sechkin |
18-10-2012 10:07 2007686 |
Код:
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=|" %%i in (%1) do (
for /f "delims=" %%k in (%%i.txt) do (
something.exe %%k %%i
echo !errorlevel!
)
)
EnableDelayedExpansion - позднее связывание.
|
apozlevich |
18-10-2012 10:16 2007691 |
А к переменным, заключенным в !! можно применять разные :~0,-1?
|
Цитата:
Цитата apozlevich
А к переменным, заключенным в !! можно применять разные :~0,-1? »
|
Конечно.
|
Instant_SR |
22-11-2013 17:43 2259967 |
Подниму тему...
есть листинг:
Код:
@ECHO off
@COLOR 4
@CHCP 866
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
CLS
:Start
For /F "Tokens=2*" %%I In ('Reg Query "HKCU\Software\Microsoft\Shared\UcClient" /V ConfigurationMode') Do SET key=%%J
IF %ERRORLEVEL%==0 (
echo 1
pause
)
echo 0
pause
просто ищет по реестру ключ...
ключ есть - %errorlevel%=0
ключа нет- %errorlevel%=0 но в консоли пишет, что "ошибка-мол, нет такого" значит место указано верно
как заставить реагировать %errorlevel% на наличие\отсутствие ключа в реестре?
|
Instant_SR, в данном случае Вы видите errorlevel от команды «for /f».
Цитата:
Цитата Instant_SR
как заставить реагировать %errorlevel% на наличие\отсутствие ключа в реестре? »
|
Не нужно.
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=2*" %%i in (
`reg.exe query "HKCU\Software\Microsoft\Shared\UcClient" /v "ConfigurationMode" 2^>nul ^| find.exe /i "ConfigurationMode"`
) do set sConfigurationMode=%%j
if defined sConfigurationMode (
echo ConfigurationMode: [%sConfigurationMode%].
) else (
echo Parameter not exists.
)
endlocal
exit /b 0
|
Время: 11:03.
© OSzone.net 2001-