Модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для NoNaMe
2625 / 762 / 166
Регистрация: 10.06.2009
Сообщений: 2,994

Полезные приёмы при написании скриптов

25.01.2017, 17:01. Показов 47024. Ответов 20

Студворк — интернет-сервис помощи студентам
Очень часто когда мы пишем скрипты нам необходима отладочная информация.
Иногда мы выполняем скрипт с консоли и хотим видеть что он выполнил. По этому кроме логирования очень хочется видеть и на консоле некоторые результаты. Для этого я сделал небольшой скриптик.
Если LogDisabled = 1 То грабим в консоль. Иначе вывод в лог.
Windows Batch file
1
2
3
4
5
6
7
:local LogDisabled 0;
:local ENDS "THE  END  IS  COMING!!!"
:if ( $LogDisabled = 1) do={
    :put $ENDS
} else={
    log info message="$ENDS"
}
Конструкции данного типа бывают очень полезны. Например у ISP падает сервер где-то далеко. Пинги есть а интернета нету. А ip его известен, то данная конструкция меня неоднократно спасала.
Windows Batch file
1
2
3
4
5
do {
    :resolve isp-h1.local
} on-error={
    log warning ("Error isp-h1.local not resolve")
}
Продолжим:
А что если переменная ещё не имеет значения.
Windows Batch file
1
2
3
4
5
:local glnothing;
:if ([:typeof $glnothing] = "nothing") do={
    :put message=[:typeof $glnothing]
    log info message=[:typeof $glnothing]
}
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#Как только мы применим значение, то наша переменная получит тип:
# str
:local glnothing ""
# num
:local glnothing 0
# array
:global glnothing [:toarray value=""]
 
# bool А тут всё интересней!!!
# Вернёт true
:global glnothing [:tobool value=yes]
# вернёт false
:global glnothing [:tobool value=no]
# вернёт nil
:global glnothing [:tobool value=0]
 
# А как нам удалить переменную glnothing
# Легко!
:global glnothing (a)
#Теперь мы можем создать непроинициализированную переменую снова
:global glnothing ;
# nothing Теперь наше значение проинициализировано снова, но неимеет значения и типа.
Есть ещё интересный момент с Результатом пинга.
Windows Batch file
1
:global PingResult [/ping 8.8.8.8 count=4]
Если все 4-е запроса вернулись, то в PingResult будет значение 4, если 3 то 3, если 2 то 2, и.т.д.
2
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2017, 17:01
Ответы с готовыми решениями:

HELP при написании скрипитов
Таблица, представляющая схему данных и небольшая легенда, в которой будет описаны данные, а также заданы пользователи и их права. Вам...

Приёмы работы с zexmlss
Нужно выводить отчёт из БД в таблицу, в которой есть объединённые ячейки, форматирование, перенос по строкам и пр. Для быстроты выгрузки...

Приёмы адаптивной вёрстки
Здравствуйте! Мне необходимо изменить ширину сайта в зависимости от разрешения монитора. Много искал в Интернете, так и нечего толкового не...

20
Модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для NoNaMe
2625 / 762 / 166
Регистрация: 10.06.2009
Сообщений: 2,994
27.12.2024, 16:36  [ТС]
Студворк — интернет-сервис помощи студентам
Скрипт testmtu, проверяем MTU до конкретного узла.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
#Usage: [$testmtu <ip>] [$testmtu <ipv6>]
global testmtu do={
  local result;
  local checkok;
  for i from=1100 to=1500 step=10 do={
    set checkok ([ping $1 do-not-fragment count=1 size=$i proplist=received as-value])
    if ([($checkok->"received")]=1) do={
      set result $i;
  }};
put [("IP=" . $1 . ";MTU=" . ( $result + 28 ) . ";MSS=" . ( $result - 4 ))]
log warning [("IP=" . $1 . ";MTU=" . ( $result + 28 ) . ";MSS=" . ( $result - 4 ))]
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2024, 16:36

Ошибка при написании программы
Добрый день! у меня вопрос по поводу ошибки при написании программного кода. Опыта в написании программы на СИ у меня мало, так как...

Трудности при написании программы
Здравствуйте. Разбирал циклы for, while и do while, принцип их работы я понял, но меня поставила в ступор одна задачка связанная с ними :...

Ошибка при написании уравнения
Дано уравнение . Я его написал, но почему то ответ выдается такой y=Nan а при значении х=2 выдается ответ Program Pr1; Var ...

Предупреждения при написании кода.
На каждой строке типа: comand.Parameters.Add(&quot;@Assmnt_ID&quot;, Assmnt_ID); студия пишет предупреждение. Чем это грозит, как от этого...

Какая разница при написании i и 1i
Добрый вечер! Вопрос такой, какая разница при написании i и 1i в MATLAB. Может какие-то отличия есть при определенных условиях. Всем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru