Получаем информацию о программе и загружаем ее через CMD (man и apt-get для Windows?)

в 6:22, , рубрики: open source, командная строка, ненормальное программирование, Софт

image

В данной статье речь пойдет об очень простом и удобном способе для получения данных (информации) о программным обеспечении и загрузки/установки через CMD. Для реализации было использовано открытый API Xetcom.Export и Wget1. К сожалению, API толком не документирован, но, с другой стороны, достаточно простой — можно понять суть после нескольких тестовых запросов. Сама сборка состоит из трех не зависящих друг от друга .BAT файлов и пакета Wget. Вооружитесь правами администратора и вперед.

Start

Для начало советую немного поиграть с настройками интерпретатора, а если по конкретнее — настроить вид окна (Свойства > Расположение). Ширину и высоту размера буфера обмена часто путают с размером окна. Если вкратце, то это фактический максимальный размер прокрутки. Если текст не совмещается в ней, то автоматический переносится на следующую строку. Именно по этой причине кнопка Maximize в командной строке «не работает». Оптимальные параметры на мой взгляд — 150x300. Высота 300 означает 300 строк, после которого ранее записи исчезают. О настройках более-менее описано тут. А еще, в качестве альтернативы советую попробовать Console.

image
Шрифт Lucida Console вместо точечных.

Состав SFX архива:

Все файлы архива распаковываются в папке %windir%. Это позволяет вызывать их напрямую — без указания пути и без регистрации пути в реестре. Последний вариант позволяет запускать программу независимо от расположения, но нужно о ее местонахождения сообщить реестру (ветка SOFTWAREMicrosoftWindowsCurrentVersionApp Paths). Точно так же работают системные утилиты calc, mspaint, ping и т. д. Здесь подробно описано.

А теперь обо всём по-порядку.

man.bat

@ECHO OFF
CHCP 1251
%1
%2
CLS
SET title=%1
SET param=%2

IF "%title%" == "" (
ECHO Значение не указано
EXIT /B
)

IF "%param%" ==  ""  GOTO none
IF "%param%" == "-c" GOTO c
IF "%param%" == "-m" GOTO m
IF "%param%" == "-l" GOTO l
IF "%param%" == "-f" GOTO f
GOTO error

:none
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:c
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:m
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1&xetindex=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:l
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1&xetindex=1&fileinfo=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:f
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1&xetindex=1&fileinfo=1&competitors=tranformed" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:error
ECHO Указан неправильный параметр

Демонстрация / вывод информации aimpimage

Как вы заметили, у этого батника имеются параметры -c, -m, -l, -f (compact, medium, long, full соответственно). Если ввести команду без параметра, то вводится минимальная информация (описание программы + карточка + особенности). Каждый последующий параметр добавляет больше информации. Для наглядности см. примеры.

Примеры

Краткая информация Google Chrome
man google-chrome

Описание: Google Chrome — наиболее быстро развивающийся браузер, во многом, благодаря открытому исходному коду Chromium, благодаря которому оперативно выпускает новые версии и при этом, быстро ликвидирует все имеющиеся уязвимости. Обозреватель имеет простой минималистичный дизайн, что облегчает интернет-серфинг, так как ничто не отвлекает пользователя от содержимого веб-страницы. Вкладки браузера являются изолированными, что одновременно с повышением надёжности работы браузера, делает посещение сайтов более безопасным. Chrome имеет встроенный движок JavaScript, значительно ускоряющий обработку скриптов и увеличивающий скорость работы в Интернете.

Разработчик: Google
Поддерживаемые форматы: HTML,HTM,SHTML,XHTML,TXT,TEXT,JPE,JPG,JPEG,GIF,MHTML,PNG,BMP,ICO,SVG,SVGZ,XML,PDF,SWF
Оф. сайт: google.com
Платный аналог: e-Capsule Browser
Русский язык: Имеется
Статус: Freeware
Исходники: Закрыты

Особенности:
— Единственное окно для решения большинства задач.
— Ярлыки приложений и динамические вкладки.
— Возможность безопасного просмотра сомнительных сайтов, а также наличие режима "инкогнито".
— Лёгкий процесс создания закладок, а также возможность их импорта из других браузеров.
— Высокая скорость работы и надёжность.
— Полностью автоматический процесс обновления.

Полная информация Google Chrome
man google-chrome -f

Описание: Google Chrome — наиболее быстро развивающийся браузер, во многом, благодаря открытому исходному коду Chromium, благодаря которому оперативно выпускает новые версии и при этом, быстро ликвидирует все имеющиеся уязвимости. Обозреватель имеет простой минималистичный дизайн, что облегчает интернет-серфинг, так как ничто не отвлекает пользователя от содержимого веб-страницы. Вкладки браузера являются изолированными, что одновременно с повышением надёжности работы браузера, делает посещение сайтов более безопасным. Chrome имеет встроенный движок JavaScript, значительно ускоряющий обработку скриптов и увеличивающий скорость работы в Интернете.

Разработчик: Google
Поддерживаемые форматы: HTML,HTM,SHTML,XHTML,TXT,TEXT,JPE,JPG,JPEG,GIF,MHTML,PNG,BMP,ICO,SVG,SVGZ,XML,PDF,SWF
Оф. сайт: google.com
Платный аналог: e-Capsule Browser
Русский язык: Имеется
Статус: Freeware
Исходники: Закрыты

Особенности:
— Единственное окно для решения большинства задач.
— Ярлыки приложений и динамические вкладки.
— Возможность безопасного просмотра сомнительных сайтов, а также наличие режима "инкогнито".
— Лёгкий процесс создания закладок, а также возможность их импорта из других браузеров.
— Высокая скорость работы и надёжность.
— Полностью автоматический процесс обновления.

Системные требование:
Процессор: 2200 MHz
ОЗУ: 512 Мб
Жесткий диск: 100 Мб
Аудиокарта: Любая совместимая аудиокарта
Видеокарта: 64 Мб
Архитектура: x86 или x64
Система: Windows XP, Windows Vista, Windows 7, Windows 8

Индекс полезности:
Скорость: 100
Практичность: 100
Надежность: 100
Функциональность: 100

Информация о файле:
Тихая установка: /install
Варианты дистрибутива: Только установочная
Инсталлятор: Без тулбаров
Сертификат: Имеется

Конкуренты:
360-browser
safari
avant-browser
baidu-spark
blackhawk-browser
browzar
chrome-hybrid
chromium
cometbird-browser
comodo-dragon
comodo-icedragon
coolnovo
coowon
cyberfox
dooble
epic-browser
firefox
firefox-hybrid
greenbrowser
internet-explorer
k-meleon
lunascape-browser
maxthon-browser
opera
opera-hybrid
opera-unofficial
orbitum
orca-browser
pale-moon
qip-surf
qupzilla
seamonkey
sleipnir
slimbrowser
slimjet
srware-iron
superbird
theworld-browser
tor-browser-bundle
torch-browser
waterfox
wyzo
yandex-browser


get.bat

@echo off
chcp 1251
%1
%2
cls
set title=%1
set param=%2

IF "%param%" == "x64" GOTO x64

:x86
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x86&format=dos" -O "%title%-x86.txt"
wget -i "%title%-x86.txt" -P %USERPROFILE%Desktop
del "%title%-x86.txt"
Exit /B

:x64
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x64&format=dos" -O "%title%-x64.txt"
wget -i "%title%-x64.txt" -P %USERPROFILE%Desktop
del "%title%-x64.txt"
Exit /B

Принцип работы данного файла думаю, будет излишне описывать.

Демонстрация / загрузка aimp
image

Загруженный файл сохраняется на рабочем столе (проверено на Windows 7/8). Не смог найти переменную рабочего стола XP. Хотя здесь есть изощренное решение, но оно тоже почему-то не работает. Проблема в том, что в зависимости от языка путь меняется. Например в русской версии %HOMEPATH%Рабочий стол, в английской %HOMEPATH%Desktop и т. д. Чтобы не спамить batch файл многострочными IF-ами, решил отказаться от этой затеи. Пользователям XP придется немного поправить команды. %HOMEPATH% или папка пользователя, оттуда всего один шаг к рабочему столу. Замените %USERPROFILE%Desktop на %HOMEPATH%change_me и готово.

Автоматизированная поэтапная загрузка через другой bat файл:

cmd /c get 7-zip
cmd /c get opera
cmd /c get firefox


Установка «самоустанавливаемых» программ
Этот трюк требует еще один запрос к API — для получения ключа тихой установки (Unattended/Silent installation switch). Еще стоит обратить внимание, что не все программы поддерживают «тихий режим» установки или вообще изначально портативные (таких тоже очень много). В этом случае после загрузки скрипт просто запустит файл и будет ждать ваших действии.

install.bat

@echo off
chcp 1251
%1
%2
cls
set title=%1
set param=%2

IF "%param%" == "x64" GOTO x64

:x86

:: Получение данных
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x86&format=dos" -O "%title%-x86.txt"
wget -i "%title%-x86.txt" -P %TMP%
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&format=dos&silent_install=1" -O "%title%-x86-silent.txt"

:: Получение названии и расширении файла
set /p x86=<"%title%-x86.txt"
for /F %%i in ("%x86%") do set x86=%%~nxi

:: Запуск инсталлятора
set /p silent=<"%title%-x86-silent.txt"
cmd /c "%TMP%%x86% %silent%"

:: Удаление оставшихся файлов
del "%TMP%%x86%"
del "%title%-x86.txt"
del "%title%-x86-silent.txt"
Exit /B


:x64

:: Получение данных
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x64&format=dos" -O "%title%-x64.txt"
wget -i "%title%-x64.txt" -P %TMP%
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&format=dos&silent_install=1" -O "%title%-x64-silent.txt"

:: Получение названии и расширении файла
set /p x64=<"%title%-x64.txt"
for /F %%i in ("%x64%") do set x64=%%~nxi

:: Запуск инсталлятора
set /p silent=<"%title%-x64-silent.txt"
cmd /c "%TMP%%x64% %silent%"

:: Удаление оставшихся файлов
del "%TMP%%x86%"
del "%title%-x64.txt"
del "%title%-x64-silent.txt"
Exit /B

Демонстрация / автоматическая установка burnawareimage

Немножко автоматизации или пакетная установка, или Windows WPI размером 1кб

::==========================::
::=========settings=========::
::==========================::

:: Браузеры
cmd /c install firefox
cmd /c install google-chrome

:: Архиваторы
cmd /c install 7-zip

:: Аудио
cmd /c install foobar200

:: Конвертеры
cmd /c install format-factory

:: Видео
cmd /c install k-lite-codec-pack
cmd /c install audacity

:: Графика
cmd /c install faststone-image-viewer
cmd /c install picpick

:: Система
cmd /c install ultradefrag
cmd /c install hashtab

:: Нужные вещи
cmd /c install adobe-flash-player
cmd /c install microsoft-silverlight
cmd /c install java x64
cmd /c install unlocker

:: Офис
cmd /c install notepad-plus-plus
cmd /c install libreoffice

SFX архив

Автор: code200

Источник

Поделиться

* - обязательные к заполнению поля