IT
December 9, 2018

Басня о том, как Дилонг на BATCH-е чат создавал

Смыслящий человек о значении слова BATCH вкурсе. Кто не знает – объясняю: есть в Windows такой инструмент как Командная Строка, которая простым смертным обычно не нужна, а используют ее всякие дядьки и школьники в очках для серьезных дел либо чтобы показать свою крутость командой color 2 && cd c: && tree.

Не поверите, но у этой дряни есть сравнительно немало возможностей, если вы никогда не слышали о BATCH. Так вот, в командной строке можно писать полноценные ̶п̶р̶о̶г̶р̶а̶м̶м̶ы̶ исполняемые скрипты, то есть инструкции. Это и есть батчем. Можно выполнять любые операции с файлами, дисками, параметрами Windows, переменными, есть логические операторы и доисторический goto. Но вот каждый раз вписывать код - извращение, поэтому стали частоисполняемые команды совать в файлы с расширением *.bat.

Плюс его в том, что можно быстро что-то накодить в прямом смысле: сразу в самом обычном блокноте.. и, в конце концов, без всяких компиляций засунуть в Командную Строку. Не нужно даже ничего устанавливать.. кроме Windows.

Попал я как-то на курсы царские за деньги государственные: готовили меня к походу на вершину Олимпа: хотели, чтобы я занял призовое место на республиканском уровне (и я оправдал их надежды).

2017-й год. Курсы страшно нудные: две недели целиком посвящены Microsoft Office и включению лампочек в Excel без макросов. Ещё и порассаживали нас далеко: каждый за своей Электронной Вычислительной Машиной на базе Win7.

И приспичило мне как-то пообщаться с дальними соседями, узнать как там на острове Буяне живёт именитый царь Гвидон.

Под рукой у меня были: компьютер и локальная сеть. Это все. Даже флешки были отключены бережливым сисадмином. Но меня это, конечно же, не остановило.

Лезть в систему и включать USB-порты довольно радикальное занятие, поэтому я решил довольствоваться чем есть и вспомнил о BATCH-е.

Как это работает

Всего у чата есть 4 ревизии. Хоть базовый принцип простой до смеха, but it really works!

У нас есть несколько компьютеров в локальной сети. Один из них выбираем за хост. В общедоступной папке просто создаётся файл chat.txt, человек печатает сообщение, скрипт вносит строку в файл и выводит содержимое всего файла на экран. Никакого обновления не было, был просто концепт чата. Зато это работало.

Ревизия 2

На следующий день я захотел большего. Я захотел полноценный чат. Я написал сообщения о вступлении в чат, время сообщений. А ещё сделал обновление сообщений. Это уже вышло два файла. При запуске chat.bat скрипт запускает также вспомогательный файл, который открывает второе маленькое окно с полем ввода текста. Первое же окно беспрерырвно обновляет диалог. Теперь это можно называть чатом.

Ревизия 3

У этого чата был один минус: сложность настройки. Cmd довольно худо поддерживает сетевые соединения и при запуске с удаленной машины напрочь забивает на свое настоящее местоположение, перенося среду команд в C:\\Windows. Поэтому пришлось просить пользователей копировать файлы на локальную машину, открывать скрипт и вручную редактировать пути к host-файлу чата. Довольно много неудобства. В итоге я написал ещё один файл. Он копирует чат на рабочий стол и создаёт рядом с ним директиву target.txt, в котором указан путь к хост-каталогу чата. Из него подгружается воспомогательный скрипт и чат. Теперь ничего редактировать не надо, а при смене машины надо просто запустить Install.bat ещё раз.

Ревизия 4

Командная Строка очень непроизводительный инструмент. Банальный вывод текста у него отнимает приличное время, как и его чтение. Чат по этой причине может немного дёргаться, а при большом наличии строк скрипт становится вырвиглазным. Просто было добавлена очистка чата, чтобы избегать этого.

Итог

Вот так банальная лень и скука в очередной раз создала специфическую, никому ненужную дрянь. Используйте:

https://telegram.me/filesbot?start=BQADAgADqQEAAiWvcEplYSsmRs59uQI