Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
05.04.2008, 18:11 | #1 |
Постоялец
Пол: Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Условие в консоли - CMD
Хочу в CMD проверять включён ли комп в сети и если да, то выполнять определённые действия.
Логика такая: Если команда1 выполнена успешно, то идти на метку m1 - иначе выполнить команду2 if ping 10.0.0.99 goto m1 C:\WINDOWS\pid.exe Как правильно? Запутался с else и exist и ещё cmd ругается, что 10.0.0.99 - неопознанная команда. :/ |
Реклама: | Рекомендуем гипермаркет КНС - asus vivobook 15 x1504z - более 50-ти тысяч наименований товаров со склада в Москве | Интернет-магазин КНС Нева - купить ноутбук для дома - поставка техники в СПБ и города северо-запада России. | подставка под цветок напольная | Кондиционер TMV-V50G/N1Y(EV) | yougile telegram интеграция |
05.04.2008, 19:56 | #2 | |||||||||||||||||||||||
Постоялец
Пол: Регистрация: 28.01.2008
Адрес: Пермь
Сообщений: 438
Репутация: 172
|
Ответ: Условие в консоли - CMD
Не совсем так. Как вариант: Код:
ping -n 1 10.0.0.99 if errorlevel 1 goto no_ping Не очень понял, правда, что такое PID.EXE? Эту прогу надо запустить, если удалённый комп включен? Тогда можно так: Код:
ping -n 1 10.0.0.99 if not errorlevel 1 c:\windows\pid.exe Последний раз редактировалось vmunt; 05.04.2008 в 20:03.. Причина: Добавлено сообщение |
|||||||||||||||||||||||
Сказали спасибо: |
05.04.2008, 20:44 | #3 |
Постоялец
Пол: Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Ответ: Условие в консоли - CMD
Просто раньше было 4 задания, а я захотел сделать одно, одним файлом: проверяем есть ли связь с сервером, если нет - запускаем авторизатор, который открывает туда доступ. Затем NET USE... делаем локальную копию архива с сервера, очищаем папку и закрываем соединение.
Радует, что можно проверить ещё кучу всего, но для этой задачи достаточно того, что есть. Первый вариант заработал, мне нужен был лишь синтаксис, спасибо. С остальным я разобрался. Просто в справочной системе маловато примеров и как-то всё туманно. За if not я сообразил сразу. Прекрасно работает. Тему можно удалить. |
05.04.2008, 21:13 | #4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Постоялец
Пол: Регистрация: 28.01.2008
Адрес: Пермь
Сообщений: 438
Репутация: 172
|
Ответ: Условие в консоли - CMD
Кхм... Во-первых, улыбнула постановка задачи:
Хаароший сервер, надо сказать... Во-вторых:
Тут слабо понял, как соотносится PING и авторизация на сервере? Здесь, скорее всего, больше в тему проверка наличия файла в расшаренной папочке... А по поводу архивной копии: 1. Надо. 2. NET USE, имхо, тоже лишнее... Код:
copy \\10.0.0.99\ARCH\*.* c:\archieve echo y|del \\10.0.0.99\ARCH\*.*
Ах это в справочной системе туманно?! Паанятно... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
05.04.2008, 21:39 | #5 | |||||||||||||||||||
Постоялец
Пол: Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Ответ: Условие в консоли - CMD
vmunt,
Алгоритм резервного копирования с сервера под Samba используется мною уже не один год. Естественно, что там всё запаролено. И ваш метод без авторизации здесь не пройдёт. Если интересует, то в целом файл резервного копирования выглядит теперь просто и без лишних изворотов:
Справка в командной строке cmd по поводу оператора IF действительно запутана. А стандартная виндовая сейчас недоступна - на машине много задач выполняется, не хочу пока беспокоить её экспериментами. Последний раз редактировалось Kucher2; 05.04.2008 в 21:50.. |
|||||||||||||||||||
05.04.2008, 21:58 | #6 |
Постоялец
Пол: Регистрация: 28.01.2008
Адрес: Пермь
Сообщений: 438
Репутация: 172
|
Ответ: Условие в консоли - CMD
Интересует...
1. Не очень понятно, зачем подключать ресурс paint$, если в этом пакетнике он не используется вообще. 2. Зачем вообще после авторизации вводить дополнительные пароли на доступ к ресурсу? Клиент в InetAccess (не знаю, что такое) может залогиниться пользователем, которому запрещено подключаться к ресурсу paint$? 3. ping 127.0.0.1 -n 5 - это что за заморочки? Это вариант задержки такой? А зачем? Какие-то нюансы при работе с Linux-овским сервером? |
05.04.2008, 22:14 | #7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Постоялец
Пол: Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Ответ: Условие в консоли - CMD
Я ошибся. Исправил.
Клиент не логинится, он просто сообщает серверу, что такой-то юзер хочет пройти (юзер этот имеет отношение лишь к билингу, прав к доступу в самой системы у него нет) и сервер открывает правила фаервола, пуская меня к себе по IP-протоколу.
Да, вариант задержки "по-быстрому". Иначе надо использовать доп. утилиты. А этот вариант универсален. Я ж сказал: всё просто. Зачем задержки - я выше написал. Вообще в Nix'ах для этого есть команда задержки.. по-моему sleep. А MS почему-то пожмотились на такое. Последний раз редактировалось Kucher2; 05.04.2008 в 22:16.. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
05.04.2008, 22:23 | #8 | |||||||||||||||||||||||
Постоялец
Пол: Регистрация: 28.01.2008
Адрес: Пермь
Сообщений: 438
Репутация: 172
|
Ответ: Условие в консоли - CMD
Почему пожмотилась? Вот... Только там про Nix-ы ни слова... Спасибо за ответы. Всё стало понятно. |
|||||||||||||||||||||||
05.04.2008, 22:29 | #9 | |||||||||||||||||||||||
Постоялец
Пол: Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Ответ: Условие в консоли - CMD
Это отдельный модуль. А в NIX'ах эта функция встроена уже. Если использовать её сейчас, то на другой машине такое решение работать не будет - надо снова файлик этот брать где-то. А мне важна универсальность и простота. |
|||||||||||||||||||||||
05.04.2008, 22:39 | #10 |
Постоялец
Пол: Регистрация: 28.01.2008
Адрес: Пермь
Сообщений: 438
Репутация: 172
|
Ответ: Условие в консоли - CMD
Я понял (про отдельный модуль)... Если что, намёк... У меня sleep.exe лежит вместе с пакетником, в котором используется...
|
06.04.2008, 20:24 | #11 | |||||||||||||||||||
Постоялец
Пол: Регистрация: 15.09.2007
Сообщений: 695
Репутация: 218
|
Ответ: Условие в консоли - CMD
А вот ещё, паровозом, вопросик:
Вот в этом фрагменте:
Если, скажем, два компа находятся на большом удалении, то 1-2 пакета могут потеряться (к примеру я хочу сделать сервер VPN и коннектиться к нему из любой точки мира). Как правильно настроить такое условие, чтобы при прохождении большинства пакетов - оно считалось бы правдивым? |
|||||||||||||||||||
07.04.2008, 00:27 | #12 |
Постоялец
Пол: Регистрация: 28.01.2008
Адрес: Пермь
Сообщений: 438
Репутация: 172
|
Ответ: Условие в консоли - CMD
Насколько я понимаю, errorlevel после ping-а взводится, если _ни_один_ из пакетов не дошёл. Доку по нему сейчас искать тяжко уже (баиньки хоца), но думаю, можно просто попробовать нарисовать пакетник типа:
Код:
ping -n 20 10.0.0.10 if errorlevel 10 echo 10 if errorlevel 9 echo 9 ... if errorlevel 1 echo 1 А у меня в пакетнике проверки, если первый пинг не проходит, то я перехожу на посылку второго пинга, и только потом обрабатываю облом. Таким образом можно, например, делать 3,4,5 последовательных проверок ping -n 1 x.x.x.x... |
Сказали спасибо: |
07.04.2008, 02:44 | #13 |
Пользователь
Пол: Регистрация: 10.10.2005
Сообщений: 163
Репутация: 244
|
Ответ: Условие в консоли - CMD
Такой vbs скрипт использую для проверки с утра работоспособность серверов висит в назначенных заданиях + cmd2sms.exe найдите на сайте для своего региона и оператора скрипт отправки смс, может кому нибудь пригодиться
Скрипт
__________________
Не все ври, что знаешь... Последний раз редактировалось Plesha; 07.04.2008 в 06:41.. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка сафта в консоли? | Калина | Вопросы и проблемы | 15 | 24.06.2010 18:55 |
crop на все фотки, но условие: отрезать 1см снизу и 1см сверх.как сделать так Action? | tasheal | Школа Photoshop / Photoshop School | 1 | 28.09.2008 16:02 |
Рисование в консоли на C# | Ivan_32 | .NET | 9 | 21.04.2008 17:46 |
Запрет консоли CS 1.6 | whitevolf | Помощь по играм | 3 | 13.04.2007 13:40 |
|
|