1 (изменено: gudleifr, 2026-06-13 01:51:05)

Тема: CMD/BAT: ЭТО КОТ?

SET K1=ЭТО ЗДЕСЬ
SET K3=ЭТО ЗДЕСЬ
SET K2=ЭТО 12/86
SET K1=НАУКА И ЖИЗНЬ
SET K5=ЭТО 12/86
SET K4=ЭТО 12/87
SET K2=РЕАКЦИЯ ЧИТАТЕЛЕЙ
SET K7=ЭТО ЗДЕСЬ
SET K6=ЭТО СОВЕТЫ 16 И 17
SET K3=КНИГА 128 СОВЕТОВ
SET K15=ЭТО ЗДЕСЬ
SET K14=ЭТО ТОМ 1 ГЛАВА 3
SET K7=МОИ ЗАМЕТКИ
SET K31=ЭТО ЗДЕСЬ
SET K30=ЭТО НАЕЗД НА ИНФОЦЫГАН
SET K15=НА ФОРУМЕ СТАРОГО ДОСА

Что это такое? Очевидно, это кусок командного скрипта DOS/WIN. А зачем? Затем, что это БАЗА ДАНЫХ! Для той самой программы ЭТО КОТ, ссылки на которую перечислены. А это зачем? Затем, что мне показалось удобным вести по ходу дела записи о каких-то сиюминутных делах. Нет, конечно, ранее я предполагал, что на основе этой программки можно сделать более удобным форумное общение. Мол, не обмениваться случайными репликами, а высказывать свои тезисы более структурированно. Например, не "топ 10 лучших игр для меня", а "какие игры мне вспомнились сейчас и почему?".

Однако, с форумной версией ничего не получилось. Слишком высок оказался порог вхождения в игру. Ввести методу исподволь тоже оказалось сложным. Современные Сетевые технологии далеко переросли простые потребности обмена информацией. Я перенес эту игрушку в HTML (см. K62 ниже - https://gudleifr.mybb.ru/pages/kot ) и засунул на технологический форум. Но центр тяжести моментальна переключился с базы данных на эмуляцию консоли (с чем столкнулись уже первые первые современные переписчики BASIC-программы - K126 - https://gudleifr.forum2x2.ru/t18-topic#390) (http://gudleifr.byethost8.com/rkn.gif - форумная площадка попала под роскомнадзор). Но хуже того, задача автоматизации передачи результатов запуска программы обратно на форум простыми средствами не решается.

https://gudleifr.byethost8.com/etokot.jpg

Так что, если удобная консоль - это DOS-овская, а передачу данных удобнее всего копипастить, то зачем изобретать велосипед? Хотите КОТА? Создайте в notepad файл etokot.bat:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
>>ETOKOT.TXT ECHO.

REM СЛЕДУЮЩИЕ ТРИ СТРОЧКИ ЗАМЕНИТЬ ПОСЛЕ ПЕРВОГО ЗАПУСКА
REM НА ТЕКСТ ETOKOT.TXT. В ДАЛЬНЕЙШЕМ ДОБАВЛЯТЬ И ЧИСТИТЬ

SET K1=ЭТО %~1
IF "%~1"=="" SET K1=ЭТО ЧТО-ТО НЕПОНЯТНОЕ
>>ETOKOT.TXT ECHO SET K1=%K1%

REM КОНЕЦ БАЗЫ ДАННЫХ

:P10
SET I=1
:P20
SET /P O=!K%I%!? 
SET /A N=I*2
IF DEFINED K%N% GOTO P70
IF /I "%O%" NEQ "Д" GOTO P50
ECHO УРРА-А!
SET /P O=ХВАТИТ? 
IF /I "%O%"=="Д" EXIT /B
GOTO P10
:P50
SET /A N+=1
SET K%N%=!K%I%!
>>ETOKOT.TXT ECHO SET K%N%=!K%N%!
SET /P O=А ЧТО ЭТО? 
SET /A N=I*2
SET K%N%=ЭТО %O%
>>ETOKOT.TXT ECHO SET K%N%=!K%N%!
SET /P O=ЧЕМ ОТЛИЧАЕТСЯ? 
SET K%I%=%O%
>>ETOKOT.TXT ECHO SET K%I%=!K%I%!
GOTO P10
:P70
SET /A I*=2
IF /I "%O%" NEQ "Д" SET /A I+=1
GOTO P20

Можно заметить, что метки примерно соответствуют номерам BASIC-строкам. Хитрости запуска сводятся к тому, что лучше заранее решить, что будем классифицировать. Лучше, если это будут однотипные "предметы одного размера". Хорошо, весело например, протекает игра в оценку присутствующих студентов и отсутствующих преподов.

Если запустить скрипт без параметров, игра начинается так:

>etokot.bat
ЭТО ЧТО-ТО НЕПОНЯТНОЕ?

с параметром (кавычки нужны если есть пробелы):

>etokot.bat "ФИЛЬМ О СТЕЛС В ГРУЗОВОМ ОТСЕКЕ"
ЭТО ФИЛЬМ О СТЕЛС В ГРУЗОВОМ ОТСЕКЕ?

Дальше - все как раньше:
https://gudleifr.byethost8.com/c861.jpg

После УРРА-А! можно выйти:

ЭТО 12/87? Д
УРРА-А
ХВАТИТ? Д

Результат накапливается по ходу разговора в ETOKOT.TXT - см. "код" в начале поста. По окончании первого диалога этим кодом нужно заменить ввод K1:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
>>ETOKOT.TXT ECHO.

SET K1=ЭТО ЗДЕСЬ
SET K3=ЭТО ЗДЕСЬ
SET K2=ЭТО 12/86
SET K1=НАУКА И ЖИЗНЬ
SET K5=ЭТО 12/86
SET K4=ЭТО 12/87
SET K2=РЕАКЦИЯ ЧИТАТЕЛЕЙ
SET K7=ЭТО ЗДЕСЬ
SET K6=ЭТО СОВЕТЫ 16 И 17
SET K3=КНИГА 128 СОВЕТОВ
SET K15=ЭТО ЗДЕСЬ
SET K14=ЭТО ТОМ 1 ГЛАВА 3
SET K7=МОИ ЗАМЕТКИ
SET K31=ЭТО ЗДЕСЬ
SET K30=ЭТО НАЕЗД НА ИНФОЦЫГАН
SET K15=НА ФОРУМЕ СТАРОГО ДОСА

REM КОНЕЦ БАЗЫ ДАННЫХ
...

После этого можно продолжить:

>etokot.bat
НАУКА И ЖИЗНЬ? Н
КНИГА 128 СОВЕТОВ? Н
МОИ ЗАМЕТКИ? Д
ЭТО ТОМ 1 ГЛАВА 3? Н
А ЧТО ЭТО? ТОМ 2 ГЛАВА 2
ЧЕМ ОТЛИЧАЕТСЯ? ПРИМЕР BASIC КОНСОЛИ
НАУКА И ЖИЗНЬ? Н
КНИГА 128 СОВЕТОВ? Н
МОИ ЗАМЕТКИ? Д
ПРИМЕР BASIC КОНСОЛИ? Д
...

При этом в ETOKOT.TXT допишется (то, что я забыл при первом сеансе):

SET K29=ЭТО ТОМ 1 ГЛАВА 3
SET K28=ЭТО ТОМ 2 ГЛАВА 2
SET K14=ПРИМЕР BASIC КОНСОЛИ
SET K63=ЭТО ЗДЕСЬ
SET K62=ЭТО HTML ПРОГРАММА
SET K31=НА НОВОМ ФОРУМЕ
SET K127=ЭТО ЗДЕСЬ
SET K126=ЭТО ЗАДАЧКА 1
SET K63=В ПРОЧИХ СТАТЬЯХ

Т.к. все новое просто дописывается в конец ETOKOT.TXT, то можно копипастить в/из него все, что угодно. Например, черновик этого поста я пишу прямо в нем. Нужно только не забывать сохраняться перед перезапуском etokot.bat.

После накопления базы в ETOKOT.TXT ее можно привести в нужный вид. Например, я написал kotogluk.bat для преобразования базы в заголовки ГЛЮКВЫ:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

REM СЮДА ВСТАВИТЬ ETOKOT.TXT

SET K1=ЭТО ЗДЕСЬ
... не буду повторять
SET K63=В ПРОЧИХ СТАТЬЯХ

REM КОНЕЦ БАЗЫ ДАННЫХ

SET I=1
SET O1=\
:POWTOR
SET /A N=I*2
IF DEFINED K%N% GOTO WPERED
ECHO !O%I%!!K%I%:~4!
GOTO WPRAWO
:WPERED
SET O%N%=!O%I%!!K%I%!\
SET /A N+=1
SET O%N%=!O%I%!
SET /A I=N-1
GOTO POWTOR
:WPRAWO
SET /A N="I>>1<<1"
IF %N% NEQ %I% GOTO NET
SET /A I+=1
GOTO POWTOR
:NET
SET /A I/=2
IF %I% NEQ 0 GOTO WPRAWO

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

\НАУКА И ЖИЗНЬ\РЕАКЦИЯ ЧИТАТЕЛЕЙ\12/87
\НАУКА И ЖИЗНЬ\12/86
\КНИГА 128 СОВЕТОВ\СОВЕТЫ 16 И 17
\МОИ ЗАМЕТКИ\ПРИМЕР BASIC КОНСОЛИ\ТОМ 2 ГЛАВА 2
\МОИ ЗАМЕТКИ\ТОМ 1 ГЛАВА 3
\НА ФОРУМЕ СТАРОГО ДОСА\НАЕЗД НА ИНФОЦЫГАН
\НА НОВОМ ФОРУМЕ\HTML ПРОГРАММА
\В ПРОЧИХ СТАТЬЯХ\ЗАДАЧКА 1
\ЗДЕСЬ

По окончании работы нужно ETOKKOT.TXT (и/или etokot.bat c базой) сохранить в какой-нибудь директории.

МОРАЛЬ: При программировании DOS-скриптов можно хранить код, данные и комментарии в одном и том же текстовом файле. И копипастить в другие по необходимости. И это зачастую удобнее, чем организовывать правильный файловый обмен и разрабатывать интерфейсы.

ВОПРОС: До какого места Вы дочитали?

2

Re: CMD/BAT: ЭТО КОТ?

Практически ЧатГПТ написали.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: CMD/BAT: ЭТО КОТ?

teadrinker пишет:

Практически ЧатГПТ написали

В какой момент Вы это решили?

4

Re: CMD/BAT: ЭТО КОТ?

А с какой целью интересуетесь? Хотите отлить эту дату в граните?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: CMD/BAT: ЭТО КОТ?

teadrinker пишет:

А с какой целью интересуетесь?

Сильно хочется добиться того, чтобы хоть кто-то хоть-раз запустил.

6

Re: CMD/BAT: ЭТО КОТ?

Ну, как это работает, мне понятно, зачем запускать? Если бы лично мне понадобилось использовать подобный алгоритм, я бы вряд ли выбрал batch.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: CMD/BAT: ЭТО КОТ?

teadrinker пишет:

Ну, как это работает, мне понятно, зачем запускать?

Зачем запускать эту программу, понятно: быстро и наглядно отсортировать десяток сущностей. А, вот зачем "сортировать сущности"? Совсем никому не надо? Или кому-то что-то навеет?

teadrinker пишет:

вряд ли выбрал batch.

Интересно даже не то, что бы Вы выбрали, но что бы это дало? Конечно, кроме более привычного инструмента.

8

Re: CMD/BAT: ЭТО КОТ?

А, вот зачем "сортировать сущности"? Совсем никому не надо?
но что бы это дало?

Вот бы и подсказали, где это можно реально применить.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: gudleifr, 2026-06-14 01:21:36)

Re: CMD/BAT: ЭТО КОТ?

teadrinker пишет:

Вот бы и подсказали, где это можно реально применить

Я нашел только одно применение. Начать делать с утра заметки, которые вечером можно будет легко/автоматически учесть в большой рабочей базе знаний.

На грани бреда - игра: игрок - оператор сложной системы (программно, аппаратной, информационной), отвечающий за ее целостность. Новые ситуации требуют немедленной классификации. Аварии приводят к "обрыву" ветвей. Поперечные связи должны просчитываться в голове. Все в реалтайме.

10

Re: CMD/BAT: ЭТО КОТ?

P.S. Программа очень чувствительна к Теореме Геделя. Отвечать, не нарушая логики данных ранее ответов, быстро становится очень сложно.