Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] в батнике вообще можно использовать ИЛИ в цикле if? (http://forum.oszone.net/showthread.php?t=204350)

emekhedova 09-04-2011 17:34 1654721

в батнике вообще можно использовать ИЛИ в цикле if?
 
например
if условие1 или условие 2 (
что-то делается
)

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

Iska 09-04-2011 18:12 1654739

Цитата:

Цитата emekhedova
можно использовать ИЛИ в цикле 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 1654755

спасибо большое

megaloman 09-04-2011 18:49 1654765

Симулировать Или у меня получилось вот так:
Код:

@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 1654786

ну да, можно воспользоваться временной переменной (F):
Код:

SET F=1& IF NOT условие1 IF NOT условие2 SET "F="
IF DEFINED F (
что-то делается
)


Iska 09-04-2011 20:11 1654818

amel27, с возвращением!!!


Время: 17:30.

Время: 17:30.
© OSzone.net 2001-