Форум программистов, компьютерный форум, киберфорум
nekit270
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Добро пожаловать, здесь я программирую бессмысленно и беспощадно
Старый
Рейтинг: 2.86. Голосов: 7.
Импорт библиотек в BAT-файлах
Запись от nekit270 размещена 15.01.2024 в 01:43
Показов 2225 Комментарии 0

Продолжаю предложенную sqltd1 рубрику под названием "психоделическое программирование". Сегодня я подумал - вот в Python есть import, в C и C++ #include, в Node.JS - require. И так далее - почти во всех ЯП есть возможность подключить в свой код внешний файл и использовать функции и переменные оттуда.

Но что в Batch?
А в Batch - как обычно, на первый взгляд ничего, но дело в том, что есть у него одна особенность - код bat-файлов можно редактировать...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 2.33. Голосов: 6.
Создание Telegram-бота с помощью BAT-файлов
Запись от nekit270 размещена 07.01.2024 в 04:46
Показов 2514 Комментарии 3
Метки bat, batch, cmd, telegram, windows, бот

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

В целом, бот для Telegram состоит из цикла обработки обновлений, в котором бот реагирует на обновления, полученные методом getUpdates (да, есть вебхуки, но их я рассматривать не стал из-за его сложности в реализации).

При разработке бота необходимо иметь:
  • Инструмент для
...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 2.29. Голосов: 7.
Просмотрщик изображений в командной строке
Запись от nekit270 размещена 29.12.2023 в 12:22
Показов 2829 Комментарии 6

Нет, не изображений, составленных из символов, а самых обычных, в нормальном качестве.

Как? WinAPI может многое, и если вам кажется, что что-либо невозможно, скорее всего оно станет возможным, как только вы отбросите один или несколько слоев абстракций.
Зачем? Просто так. Возможно, кто-то найдет этому применение.

Поддерживаются форматы BMP, JPG, PNG, GIF и TIFF, поэтому просмотрщик...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 2.00. Голосов: 5.
3 способа запустить что-либо тогда, когда не надо
Запись от nekit270 размещена 19.12.2023 в 14:13
Показов 1872 Комментарии 0

Собственно, зачем нужно запускать что-либо тогда, когда юзер этого не хочет? Тут есть два варианта: либо ради безопасности компьютера/сети/психики детей (нужное подчеркнуть), либо тот вариант, "который приличные люди не называют", а я назову, ведь после использования eval для реализации лямбд в (почти) всеми нами любимом питончике, меня навряд ли можно считать приличным человеком. И этот вариант - вирусописательство,...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 1.00. Голосов: 2.
Чтение из XLSX-файла с помощью Python
Запись от nekit270 размещена 11.12.2023 в 02:42
Показов 1943 Комментарии 0
Метки excel, python, xlsx

Вдохновившись этой статейкой от sqltd1, решил написать на питончике скрипт для чтения данных из ячейки XLSX-файла.

Но не просто написать скрипт, а сделать это без внешних библиотек и всего прочего.


Формат XLSX

XLSX представляет собой zip-архив. Для извлечения значений нужны два файла из него:
/xl/worksheets/<лист>.xml - собственно лист
/xl/sharedStrings.xml - строки


Извлечение значений

...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 3.00. Голосов: 4.
"Многостроч­ные" лямбды в Python
Запись от nekit270 размещена 09.12.2023 в 02:36
Показов 2537 Комментарии 4
Метки lambda, python

Лямбда-функции в Python имеют ряд ограничений:
  • Только одна строка (точнее, одна команда) в теле функции
  • Нельзя присваивать значение переменным или атрибутам объектов

Но эти ограничения можно обойти!

Сразу дам ответ на вопрос "Зачем?" - просто так. Просто захотелось сделать возможным то, что разработчики языка в него не закладывали.

Для начала - ограничение на одну команду. Его легко обойти, используя eval() в связке с генератором...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 3.00. Голосов: 4.
Утилита wlrmdr.exe
Запись от nekit270 размещена 06.12.2023 в 01:23
Показов 7130 Комментарии 0
Метки bat, cmd, windows, wlrmdr

В папке System32 скрывается на первый взгляд ничем не примечательный файл - wlrmdr.exe. Его описание - "Напоминание входа в Windows". Казалось бы, это просто один из множества системных исполняемых файлов, но это не так.
wlrmdr.exe поддерживает некоторые аргументы командной строки. Официальной документации к ним нет, а информация в интернете неполная и частично неверная.

Cинтаксис этой команды:
Windows Batch file
1
wlrmdr -s <Неизвестно1> -f <Иконка>
...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 1.00. Голосов: 2.
Полезные (и не очень) функции стандартных библиотек Windows
Запись от nekit270 размещена 31.10.2023 в 23:48
Показов 1335 Комментарии 0

Это - продолжение статьи о том, как вызывать функции из командной строки.

Прмечание: ссылка в названии функции ведет на ее документацию (официальную, если такая имеется).

Полезные функции

Эта часть будет посвящена функциям, которые имеют применение (в том числе для bat-файлов)
  1. MessageBoxA
    Вызов стандартного для Windows окна сообщения.

    Сигнатура:
    C++
    1
    2
    
    int MessageBoxA(
      [in, optional] HWND   hWnd,
...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 3.00. Голосов: 4.
Вызов функций из DLL через командную строку
Запись от nekit270 размещена 30.10.2023 в 22:08
Показов 3626 Комментарии 2
Метки bat, batch, cmd, dll, rundll32, rundll34, windows

Стандартные DLL винды (kernel32.dll, user32.dll, shell32.dll и другие) содержат огромное количество полезных (или просто интересных) функций.

В поставку винды входит замечательная утилита rundll32, которая открывает двери в мир WinAPI. Вернее, приоткрывает, потому что имеет она очень серьезный недостаток - она умеет вызывать функции только с определенной сигнатурой, а именно:
Code
1
void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);
...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 1.00. Голосов: 2.
ExBAT - расширенная версия Batch
Запись от nekit270 размещена 17.09.2023 в 23:35
Показов 1471 Комментарии 6
Метки bat, batch, cmd, exbat, windows

Мне тут нечем заняться было, и я решил написать на C# расширение bat-языка, которое компилируется в обычный bat-файл.

1. Работа с компилятором

1.1. Компиляция
Code
1
exbat.exe --compile source.exb output.bat
1.2. Запуск (компиляция во временный файл, его запуск и последующее удаление)
Code
1
exbat.exe --run source.exb
2. Синтаксис ExBAT

2.1. Комментарии

В качестве символов начала комментария допустимы:
  • #
...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 2.33. Голосов: 3.
Как создавать функции (подпрограммы) в Batch
Запись от nekit270 размещена 15.09.2023 в 00:06
Показов 3212 Комментарии 1

Функции в Batch отсутствуют, но их можно создать "костыльным" методом - с помощью метки.

Пример:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
 
:: Вызов функции
call :my_function "argument 1" "argument 2"
 
:: Предотвращение исполнения кода функции без вызова
exit /b
 
:: Начало функции
:my_function
    echo Аргумент 1: %~1
    echo Аргумент 2: %~2
goto :eof
:: Конец функции
...
Аватар для nekit270
bat-пропагандист
Старый
Рейтинг: 1.00. Голосов: 2.
Mshta как инструмент расширения возможностей Batch
Запись от nekit270 размещена 12.09.2023 в 22:50
Показов 4932 Комментарии 11
Метки bat, cmd, javascript, mshta

mshta.exe - встроенная программа Windows, предназначенная для запуска HTA-файлов (HTML Applications). Но еще ее можно использовать для расширения возможностей BAT-файлов.

1. Запуск HTA-файла

Чтобы запустить HTA-файл из батника или cmd, необходимо передать mshta.exe протокол "file://" и полный путь к файлу.
Windows Batch file
1
2
:: Пример 1: запуск файла по абсолютному (полному) путь
mshta "file://C:\Users\user\Documents\test.hta"
...
Аватар для nekit270
bat-пропагандист
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru