Как сделать сложное условие в операторе if
Добрый день.
Извиняюсь если пропустил поиском тему, но я в bat файле хочу, чтобы у меня в нужный месяц и нужный день делалась нужная команда А. Как выцепить день и месяц я знаю. А вот как в if затолкать 2 этих условия я не могу найти :(. пробовал типа if УСЛОВИЕ 1 && УСЛОВИЕ 2 ( командна А ) не помогло... со скобками в условии пробовал, тоже не помогло... Подсобите умным советом, пожалуйста. |
Вложить IF друг в друга?
IF УСЛОВИЕ 1 ( IF УСЛОВИЕ2 КОМАНДА A ) |
пишет что ошибка в ситаксисе.... ну там синтаксис то примитивный ))).... Структура моего скрипта такая должна быть:
if xxx==zzz ( if aaa==www тра ля ля ) ELSE ( if xxx==www && ddd==sss ( dddddd exit ) ) |
Код:
if xxx==zzz ( |
Буду пробовать, жаль конечно что в один оператор не получится :(
|
Цитата:
Код:
If xxx==zzz ( |
amel27, это не то, что я хочу :)
п.с. А кто поставил тему решенной? и почему? |
Цитата:
Цитата:
Цитата:
2 Потому что Вам предложили несколько вариантов правильного написания вложенных условий и ответ на ваш вопрос Цитата:
|
Цитата:
я бы и сам поставил решеной тему, когда разобрался во всем до конца и все понял :) |
2 all
Есть некрасивый, не компактный, но зато 100%но рабочий Вариант 1 Вариант 1 Скрытый текст
Код:
If Not Exist "%Path1%" ( Пожалуйста, у кого есть время, возможность, желание - помогите мне Вариант 1 объединить в одну строку, чтобы было красиво, компактно, что-то вроде Вариант 2 Вариант 2 Скрытый текст
Код:
( ( ( If Not Exist "%Path1%" ) Or ( If Not Exist "%Path2%" ) Or ( If Not Exist "%Path3%" ) Or ( If Not Exist "%Path4%" ) Or ( If Not Exist "%Path5%" ) ) ( Ещё я думал про Вариант 3 Скрытый текст
Код:
If Not Exist "%Path1%" ( Но - Вариант 3 сработает только в том случае, если нет всех 5ти файлов. Если, для примера: 1) нет файл 1 и 2 2) есть файл 3 3) нет файл 4 и 5 то Вариант 3 не сработает. Спасибо. |
Цитата:
Цитата:
Перевожу Ваши варианты на русский. Вариант 1: последовательно проверяем существование путей «%Path1%»-«%Path5%». Как только очередной из путей не будет найден — прерываем обработку. Вариант 2: если не будет найден хотя бы один из путей «%Path1%»-«%Path5%» — завершаем обработку. |
Цитата:
1.cmd Скрытый текст
Код:
Set Papka=C:\Program Files\AkelPadmax_port |
SharkyEXE, давайте лучше словами. Не смог понять логику двойной проверки.
|
Цитата:
Если какого-то файла нету, выводится строка, что такой-то файл не найден Блок Код:
:NotFound Скрытый текст
Код:
:NotFound Вот поэтому и получается двойная проверка, точнее первая проверка до запуска AkelPad.exe, вторая проверка - вывод текстом только тех файлов, которых реально нету в системе Смысл файла: 1) запускаем файл 2) если все 5ть файлов находятся в системе, происходит запуск с ожиданием завершения файла C:\Program Files\AkelPadmax_port\AkelPad.exe 3) запускается файл C:\Program Files\AkelPadmax_port\AkelPad.exe 4) после закрытия файла C:\Program Files\AkelPadmax_port\AkelPad.exe, окно cmd закрывается ЕСЛИ 1) запускаем файл 2) если хотя бы одного из 5ти файлов нету в системе, то: 2-1) не происходит запуск с ожиданием завершения файла C:\Program Files\AkelPadmax_port\AkelPad.exe 2-2) нет смысла запускать с ожиданием завершения файл C:\Program Files\AkelPadmax_port\AkelPad.exe, когда хотя бы одного из 5ти файлов нету в системе 3) не запускается файл C:\Program Files\AkelPadmax_port\AkelPad.exe 3-1) переход в метку NotFound 4) в окне cmd пишется, каких именно файлов не хватает Может быть можно как-то поумнее/рациональнее это реализовать, но я голову сломал, пока только так. |
Я бы сделал сие так:
Скрытый текст
Код:
@echo off |
Iska
Большое Вам спасибо за красивый/компактный/оптимизированный/рабочий код. |
Iska
А как мне после строки Код:
echo Can't find file [%SystemRoot%\System32\%%~i]. Код:
@Echo. Код:
Can't find file [C:\Windows\System32\Find.exe]. |
Добавьте:
Код:
echo. |
Время: 18:56. |
Время: 18:56.
© OSzone.net 2001-