Войти

Показать полную графическую версию : [решено] в батнике вообще можно использовать ИЛИ в цикле if?


emekhedova
09-04-2011, 17:34
например
if условие1 или условие 2 (
что-то делается
)

если да, то каим символом это реализовывается?

Iska
09-04-2011, 18:12
можно использовать ИЛИ в цикле 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 введены для тестирования конструкции

amel27
09-04-2011, 19:18
ну да, можно воспользоваться временной переменной (F):
SET F=1& IF NOT условие1 IF NOT условие2 SET "F="
IF DEFINED F (
что-то делается
)

Iska
09-04-2011, 20:11
amel27, с возвращением!!!




© OSzone.net 2001-2012