|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как сделать сложное условие в операторе if |
|
CMD/BAT - [решено] Как сделать сложное условие в операторе if
|
Ветеран Сообщения: 1190 |
Профиль | Отправить PM | Цитировать Добрый день.
Извиняюсь если пропустил поиском тему, но я в bat файле хочу, чтобы у меня в нужный месяц и нужный день делалась нужная команда А. Как выцепить день и месяц я знаю. А вот как в if затолкать 2 этих условия я не могу найти . пробовал типа if УСЛОВИЕ 1 && УСЛОВИЕ 2 ( командна А ) не помогло... со скобками в условии пробовал, тоже не помогло... Подсобите умным советом, пожалуйста. |
|
------- Отправлено: 12:04, 14-04-2009 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SharkyEXE:
Цитата SharkyEXE:
Перевожу Ваши варианты на русский. Вариант 1: последовательно проверяем существование путей «%Path1%»-«%Path5%». Как только очередной из путей не будет найден — прерываем обработку. Вариант 2: если не будет найден хотя бы один из путей «%Path1%»-«%Path5%» — завершаем обработку. |
||
Отправлено: 13:12, 12-02-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Цитата Iska:
1.cmd Скрытый текст
Set Papka=C:\Program Files\AkelPadmax_port Set ProcessName=AkelPad.exe Set Path1=%WinDir%\System32\Attrib.exe Set Path2=%WinDir%\System32\TaskList.exe Set Path3=%WinDir%\System32\Find.exe Set Path4=%WinDir%\System32\Taskkill.exe Set Path5=%WinDir%\System32\Ping.exe Cls @Echo Off If Not Exist "%Path1%" ( GoTo NotFound ) If Not Exist "%Path2%" ( GoTo NotFound ) If Not Exist "%Path3%" ( GoTo NotFound ) If Not Exist "%Path4%" ( GoTo NotFound ) If Not Exist "%Path5%" ( GoTo NotFound ) Cd /D "%Papka%" Start /Wait "" %ProcessName% Exit :NotFound Echo Ne najden fajl: @Echo. If Not Exist "%Path1%" ( Echo "%Path1%" @Echo. ) If Not Exist "%Path2%" ( Echo "%Path1%" @Echo. ) If Not Exist "%Path3%" ( Echo "%Path1%" @Echo. ) If Not Exist "%Path4%" ( Echo "%Path1%" @Echo. ) If Not Exist "%Path5%" ( Echo "%Path1%" @Echo. ) Echo Zavershenie raboty fajla "%~0". @Echo. Echo Nazhmite lyubuyu knopku na klaviature. @Echo. Pause > Nul Exit |
|
Отправлено: 13:21, 12-02-2015 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать SharkyEXE, давайте лучше словами. Не смог понять логику двойной проверки.
|
Отправлено: 13:39, 12-02-2015 | #13 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Если какого-то файла нету, выводится строка, что такой-то файл не найден Блок можно упростить до вида Скрытый текст
Вот поэтому и получается двойная проверка, точнее первая проверка до запуска 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 пишется, каких именно файлов не хватает Может быть можно как-то поумнее/рациональнее это реализовать, но я голову сломал, пока только так. |
|
Последний раз редактировалось SharkyEXE, 12-02-2015 в 13:54. Отправлено: 13:43, 12-02-2015 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я бы сделал сие так:
Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion set sPath=%ProgramFiles%\AkelPadmax_port set sFile=AkelPad.exe set bFound=True for %%i in ("Attrib.exe" "TaskList.exe" "Find.exe" "Taskkill.exe" "Ping.exe") do ( if not exist "%SystemRoot%\System32\%%~i" ( echo Can't find file [%SystemRoot%\System32\%%~i]. set bFound= ) ) if defined bFound ( 2>nul pushd "%sPath%" && ( start "" /wait "%sFile%" popd ) ||( echo Can't find folder [%sPath%]. exit /b 2 ) ) else ( exit /b 1 ) endlocal exit /b 0 |
Отправлено: 13:53, 12-02-2015 | #15 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
Большое Вам спасибо за красивый/компактный/оптимизированный/рабочий код. |
Последний раз редактировалось SharkyEXE, 12-02-2015 в 14:13. Отправлено: 14:05, 12-02-2015 | #16 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
А как мне после строки добавить строки @Echo. Echo Zavershenie raboty fajla "%~0". @Echo. Echo Nazhmite lyubuyu knopku na klaviature. @Echo. Pause > Nul Exit |
Отправлено: 14:26, 12-02-2015 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:43, 12-02-2015 | #18 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Установка - [решено] Как сделать из настольной Windows 7 сделать ноутбучную версию? | Andrei_IW | Microsoft Windows 7 | 9 | 16-08-2009 15:53 | |
CMD/BAT - [решено] Не всегда отрабатывается условие при использовании rasdial | hosco | Скриптовые языки администрирования Windows | 8 | 04-05-2009 10:16 | |
CMD/BAT - [решено] Не выполняет одно условие удаления файла | VoodooHaker | Скриптовые языки администрирования Windows | 7 | 14-02-2009 17:49 | |
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH | 13Demon | Скриптовые языки администрирования Windows | 1 | 10-02-2009 09:47 | |
[решено] IF EXIST <условие> goto | Pozia | AutoIt | 1 | 18-01-2009 19:20 |
|