|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Множественная проверка в цикле (IF) с оперратором "ИЛИ"(OR) |
|
CMD/BAT - [решено] Множественная проверка в цикле (IF) с оперратором "ИЛИ"(OR)
|
Новый участник Сообщения: 17 |
Я так понял что в cmd оператор IF довольно унылый....
http://forum.oszone.net/thread-204350.html мне как то организовать следущее нужно: IF EXIST %SYSTEMDRIVE%\VOLSA or %SYSTEMDRIVE%\VOLSD or ... or %SYSTEMDRIVE%\VOLSV ( ECHO 1 ) IF EXIST %SYSTEMDRIVE%\VOLMB or %SYSTEMDRIVE%\VOLME or ... or %SYSTEMDRIVE%\VOLMW ( ECHO 2 ) IF EXIST %SYSTEMDRIVE%\VOLDC or %SYSTEMDRIVE%\VOLDF or ... or %SYSTEMDRIVE%\VOLDX ( ECHO 3 ) если делать проверку каждого случая, слишком громоздкий код получается ![]() что-то совсем сам запутался ![]() ![]() ![]() нужно было так: ![]() IF EXIST %SYSTEMDRIVE%\VOLMA or %SYSTEMDRIVE%\VOLSA or %SYSTEMDRIVE%\VOLDA or ... or %SYSTEMDRIVE%\VOLMV or %SYSTEMDRIVE%\VOLSV or %SYSTEMDRIVE%\VOLDV ( rem вообщем буковки A, D, G,...,V ECHO 1 ) IF EXIST %SYSTEMDRIVE%\VOLMB or %SYSTEMDRIVE%\VOLSB or %SYSTEMDRIVE%\VOLDB or ... or %SYSTEMDRIVE%\VOLMW or %SYSTEMDRIVE%\VOLSW or %SYSTEMDRIVE%\VOLDW ( rem вообщем буковки B, E, H,...,W ECHO 2 ) IF EXIST %SYSTEMDRIVE%\VOLMC or %SYSTEMDRIVE%\VOLSC or %SYSTEMDRIVE%\VOLDC or ... or %SYSTEMDRIVE%\VOLMX or %SYSTEMDRIVE%\VOLSX or %SYSTEMDRIVE%\VOLDX ( rem вообщем буковки C, F, I,...,X ECHO 3 ) ![]() PS: счас опробываю варианты ![]() |
|
Отправлено: 03:40, 22-09-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Nuclears, можно так:
@echo off setlocal enableextensions enabledelayedexpansion for %%i in (a d v) do if exist "%SystemDrive%\vols%%i" echo 1 & goto :Break1 :Break1 for %%i in (b e w) do if exist "%SystemDrive%\volm%%i" echo 2 & goto :Break2 :Break2 for %%i in (c f x) do if exist "%SystemDrive%\vold%%i" echo 3 & goto :Break3 :Break3 endlocal exit /b 0 |
Отправлено: 05:35, 22-09-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось SendMessage, 22-09-2011 в 15:43. Причина: подправил скрипт Отправлено: 13:54, 22-09-2011 | #3 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:56, 22-09-2011 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SendMessage:
|
||
Отправлено: 16:52, 22-09-2011 | #5 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Iska, да, мало спал, плохо думал вот и накосячил
![]() SendMessage, ваше решение допилил ![]() @echo off setlocal enableextensions enabledelayedexpansion set "IfExist=dir "%SystemDrive%\Install\VOL*" /b/a | findstr /i" set "VOLXY=>nul && CALL" %IfExist% "VOL[MSD][AGO]$" %VOLXY% :VOLxAGO %IfExist% "VOL[MSD][BHP]$" %VOLXY% :VOLxBHP %IfExist% "VOL[MSD][CIQ]$" %VOLXY% :VOLxCIQ :VOLxAGO ECHO ":VOLxAGO" rem do something CALL :INSTALL :VOLxBHP ECHO ":VOLxBHP" rem do something CALL :INSTALL :VOLxCIQ ECHO ":VOLxCIQ" rem do something CALL :INSTALL :INSTALL ECHO OK pause exit |
Отправлено: 14:53, 23-09-2011 | #6 |
Ветеран Сообщения: 902
|
Профиль | Отправить PM | Цитировать Ребятки, подскажите, как сделать множественное сравнение, например: (напишу просто текстом, а не кодом)
если переменная var1=2, а переменная var2=4 тогда вывести сообщение var1=2, var2=4 З.Ы, уже нашел на форуме, что простым способом через If не получиться. только последовательным сравнением. |
------- Последний раз редактировалось Devils0411, 29-12-2011 в 11:55. Отправлено: 11:33, 29-12-2011 | #7 |
Ветеран Сообщения: 902
|
Профиль | Отправить PM | Цитировать Возник вопрос, как производная от вышеописанного мною.
Помогите сократить размер кода: |
------- Отправлено: 13:13, 29-12-2011 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как управлять "Начинать с экрана приветствия" или "Защита паролем" в св-вах заставки. | Alex Konovalov | Microsoft Windows 2000/XP | 12 | 17-05-2016 19:27 | |
Ошибка - [решено] Перестал открываться "Блокнот" или где в реестре "живёт" "блокнот". | ALEKCEN | Microsoft Windows 2000/XP | 2 | 09-03-2011 21:42 | |
[решено] Переменные среды папок "Мои рисунки", "Моя музыка" или общие | Redew | Автоматическая установка Windows 2000/XP/2003 | 9 | 03-10-2009 20:43 | |
Когда нажимаю букву"M" или "L","U"...Проблема.. | ekodrive | Microsoft Windows 2000/XP | 7 | 27-01-2006 15:13 | |
"Вход в систему недоступен" или "Не найден сервер для проверки пароля входа в сеть" | rooty | Microsoft Windows NT/2000/2003 | 8 | 23-08-2005 02:18 |
|