Показать полную графическую версию : [решено] в батнике вообще можно использовать ИЛИ в цикле if?
emekhedova
09-04-2011, 17:34
например
if условие1 или условие 2 (
что-то делается
)
если да, то каим символом это реализовывается?
можно использовать ИЛИ в цикле if? »
Нет. Только последовательным сравнением, наподобие:
@echo off
setlocal enableextensions enabledelayedexpansion
if "%DATE%" == "09.04.2011" (
call :MySub
) else (
if "%DATE%" == "10.04.2011" (
call :MySub
)
)
endlocal
exit /b 0
:MySub
echo Some text
exit /b
Часто можно симулировать условие (если сравнение идёт с одной и той же переменной), наподобие:
@echo off
setlocal enableextensions enabledelayedexpansion
call :MySub "%DATE%" "01.01.2011" "02.01.2011" "23.02.2011" "08.03.2011" "01.05.2011"
endlocal
exit /b 0
:MySub
set sDate=%~1
:Repeat
set sTest=%~2
if defined sTest (
if "%sDate%" == "%sTest%" (
echo %sDate% is celebration!
goto :eof
) else (
shift /2
goto :Repeat
)
)
echo %sDate% is not celebration.
exit /b
emekhedova
09-04-2011, 18:38
спасибо большое
megaloman
09-04-2011, 18:49
Симулировать Или у меня получилось вот так:@Echo Off
Set a=1
Set b=2
Set c=3
Set d=3
rem Организую ИЛИ
Set L=0
if %a%==%b% (Set L=1) Else (if %c%==%d% Set L=1)
If NOT %L%==0 (
Echo Или выполняется %a% %b% %c% %d%
) Else (
Echo Или Не Выполняется %a% %b% %c% %d%
) Переменные а b c d введены для тестирования конструкции
ну да, можно воспользоваться временной переменной (F):
SET F=1& IF NOT условие1 IF NOT условие2 SET "F="
IF DEFINED F (
что-то делается
)
amel27, с возвращением!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.