На главную страницу сайта celitel.info
Вы не вошли в систему! [ ВОЙТИ ] или [ ЗАРЕГИСТРИРОВАТЬСЯ ]
CELITEL » Справочник команд bat/cmd » Тема: Написание командных файлов -- Стр. 1  | Перейти в: 

Послал Сообщение
katy01sister
Новичок

Из: Новосибирск
Сообщения: 1
 Написание командных файлов
Послано: 08-01-2014 16:43
            

Здравствуйте, мне хотелось бы разобраться с написанием командных файлов, элементарные команды начала писать, а вот здесь на пойму какие из команд для использования в командном файле написаны правильно:

xcopy %3 %derect%
shift %1
rem copy %2 %1
subst A: %2
echo %inc% %PMR%
move %1 > c:

И если не сложно, объясните где именно ошибки и почему???

Заранее от души благодарю за помощь!!!!
Екатерина

healer
Администратор

Из: Москва
Сообщения: 24467
 Написание командных файлов
Послано: 09-01-2014 06:58
            

Добрый день.
Хотелось бы понять в каком контексте употребляются эти команды.
Так, если переменная derect и соответствующий параметр командного файла (процедуры) удовлетворяют требованиям команды xcopy, то первая строка правильная.
С точки зрения допустимости - все нормально.
Вторая строка несколько напрягла). Дело в том, что команда shift действительно может использоваться с параметром, но он должен начинаться с знака /
далее цифра. Т. е если параметр имеет значение что-то типа /2 - что...странно себе представить, то такая команда будет правильной.
С третьей строкой - все просто. Это комментарий. Там может быть почти все, что угодно)).
Четвертая строка. Формально - все правильно. Если второй параметр командного файла (процедуры) указывает, например, на существующую директорию, то такая команда должна смонтировать ее как диск А (при условии, что изначально такого диска в системе нет).
Пятая строка. Если хотя бы одна из двух переменных определена, то такая строка отработает нормально.
Если обе переменные не определены ( что не есть правильно), то она отработает как команда echo без параметров.
Шестая строка. Тут явно ошибка. Перенаправление вывода не может идти на С:. Должен быть указан файл. Напрмер, c:\ekaterina.txt

~~~~~~~~~~~~

Здоровья Вам. Духовного и физического.


privat13
Новичок

Из: Н/Д
Сообщения: 3
 Написание командных файлов
Послано: 16-04-2014 12:04
            

Здравствуйте. Как сделать так, что после издания звукового сигнала системного спикера(динамика) не завершалась работа bat-файла?

healer
Администратор

Из: Москва
Сообщения: 24467
 Написание командных файлов
Послано: 17-04-2014 12:31
            

А почему батник должен завершать работу после издания звукового сигнала? Эти события никак не связаны.
Батник должен продолжать работать. Попробуйте поставить pause после издания звука для отладки.
Или пришлите текст батника - будем разбираться.

~~~~~~~~~~~~

Здоровья Вам. Духовного и физического.


privat13
Новичок

Из: Н/Д
Сообщения: 3
 Написание командных файлов
Послано: 22-04-2014 10:57
            

@Echo Off
@chcp 866
:START
ping -n 1 10.202.35.3
if %errorlevel%==1 c:\beep.bat
PING -n 1 -w 10000 10.202.35.3 > nul
GoTo START
EXIT

Вот текст. Пишу впервые. Суть в следующем. Необходимо чтобы этот файл постоянно проверял пинг. Если связи нет, то издавал звук. И далее опять проверял. Может я в целом все неправильно делаю? Заранее благодарен.

healer
Администратор

Из: Москва
Сообщения: 24467
 Написание командных файлов
Послано: 25-04-2014 07:27
            

Для начала - немного о постановке задачи. А что делать, если связи нет? Издать сигнал, а дальше? Я так понял, что его следует издавать с той же периодичностью, как проверки ?
Вы, вероятно, для издания сигнала использовали beep.bat как описано тут http://www.celitel.info/klad/nhelp/helpbat.php?dcmd=ex_sound.
Не нужно использовать батник beep.bat, достаточно скопировать себе его содержание.
echo _Тот_самый_символ_с_кодом_07_
и использовать его непосредственно в команде. (здесь я не могу использовать сам символ - форум его не пропустит)
<nul ping 10.202.35.3 || echo _Тот_самый_символ_с_кодом_07_
или тогда уж вместо beep.bat используйте конструкцию call beep.bat - вызов одного пакетного файла из другого без завершения выполнения первого файла. Именно отсуствие call приводило к тому, что после первого "бипа" батник завершал работу.


Посылать пинг с ожиданием ответа 10 сек на тот же адрес - не очень удачное решение,
так как при доступности ресурса ответ на пинг придет раньше.
Поэтому для ожидания можно использовать серию пингов себе,
ping -n 11 127.0.0.1 >nul (количество пингов должно быть на 1 больше числа ожидаемых секунд)
или, что более правильно, команду
TIMEOUT /T 10 /NOBREAK
(в XP эта команда отсутствует)
Использовать интервал проверки в 10 секунд - так же несколько спорное решение. Но, возможно, у Вас именно такие задачи.
С учетом сказанного, возможно Ваш пример мог бы выглядеть так:

@Echo Off
:START
<nul ping 10.202.35.3 || echo _Тот_самый_символ_с_кодом_07_
TIMEOUT /T 10 /NOBREAK
GoTo START

Следует помнить, что в таком варианте программу снять можно будет только аварийным завершением.
При недоступности ресурса 10 минут вы услышите около 60 бипов и если нервы ваших соседей недостаточно крепкие, это может плохо сказаться на Вашем самочуствии..

Далее следует замечание из серии "меня об этом не спрашивали, но я все равно скажу" .
Задача отслеживания доступности ресурса достаточно актуальна и у нее есть известные решения.
В том числе и бесплатные. Например, ZABBIX, Nagios.
Почему пишу это замечание. В свое время делал что-то похожее, с претензией на универсальнось, с вводом из ini файла IP, интервала проверки, кода действия и пр. А потом мне рассказали про ZABBIX...

~~~~~~~~~~~~

Здоровья Вам. Духовного и физического.


privat13
Новичок

Из: Н/Д
Сообщения: 3
 Написание командных файлов
Послано: 30-04-2014 06:12
            

Спасибо большое за подробное объяснение. Батник необходим, так как устанавливать стороннее ПО на клиентской машине не стоит. Нужна простецкая программулина для контроля доступности удаленного сервера с клиентской машины.

Отвечаю на ваши вопросы. В случае если связи нет, необходимо издавать сигнал и дальше пинговать IP с той же периодичностью.

healer
Администратор

Из: Москва
Сообщения: 24467
 Написание командных файлов
Послано: 30-04-2014 07:47
            

Пожалуйста. Рад был помочь.
Да, для простых задач ZABBIX и Nagios весьма тяжеловесны. И даже поверхностное закомство с их документацией займет больше времени, чем написание такого батника. У них несколько иные масштабы и цели.
Удачи!

~~~~~~~~~~~~

Здоровья Вам. Духовного и физического.


NikNik
Новичок

Из: Н/Д
Сообщения: 1
 Написание командных файлов
Послано: 21-12-2014 09:31
            

Не сочтите за рекламу, если проверяемых объектов несколько, посмотрите в сторону The Dude
http://www.mikrotik.com/thedude

healer
Администратор

Из: Москва
Сообщения: 24467
 Написание командных файлов
Послано: 22-12-2014 10:43
            

Если кто-то пользовался - отпишитесь здесь - плюсы, минусы, общее впечатления, сравнительные характеристики...

PS Возможно, надо будет создать отдельную векту по программному обеспечению.

~~~~~~~~~~~~

Здоровья Вам. Духовного и физического.



Статистика

Сейчас у нас: и 3 Гостя(ей)
Всего сообщений: 26682
Всего тем: 1151

Based on:

 

  my counter Valid XHTML 1.0 Strict Valid CSS!