Скрипты на REXX - разное
После долгого отсутствия набрёл на страничку скриптов на RU/2 и
обнаружил там товарное количество полезных вещей, спасибо. Вот ещё парочка.
Два скрипта, простых, как мычание. Их даже нету смысла пристегивать
в виде файла, настолько они коротки, и, в тоже время, лично я не
представляю себе без них жизни в OS/2. Написаны они были
давным-давно, когда я ещё не знал о существовании OS/2, а сидел под
EC1045/46 (IBM370) и там программил, в том числе на rexx, с тех пор его и люблю.
Первый скрипт, say.cmd, позволяет из командной строки быстро
вычислить 2*990.345/0.6*26+237.39, к примеру, или узнать, как выглядит
строка "Mary had a little lamb" в hexadecimal виде:
Комментарий banshee: в поставку REXX для OS/2 входит скрипт rexxtry.cmd,
имеющий точно такое же назначение, что и interpret.cmd -- выполнить команду
или записанную в одну строчку последовательность команд. А вот без say.cmd
я теперь тоже не представляю себе жизни в OS/2 :)
Замечательный скрипт был впервые мной обнаружен в README к OS/2 2.1,
затем был замечен в документации к версии 3. Изначально замещал System
Proportional ISO на non-ISO шрифт.
С его помощью можно установить любой желаемый шрифт из числа растровых
(То есть НЕ TrueType и НЕ Adobe), как базовый шрифт РМ.
Этого же эффекта можно достичь с помощью редактора ini-файлов.
Небольшой скрипт, играет все доступные mp3 файлы.
Скрипт берет стрОки из stdin и плюет их в stdout с интервалом в одну секунду.
Вроде мелочь, а неприятно. Для этого
И всё. Теперь результаты всех /exec будут выдаваться дозированно.
Если вдруг понадобится /exec без дозирования -- смело
набирайте
===say.cmd===
/***/
arg line
interpret ( say ( line ) )
=============
Usage example: say c2x(Mary had a little lamb), say 268*0.0023
Второй очень на него похож: можно быстро (опять же из командной
строки) накатать программку из трёх строк в качестве аргумента и тут
же наблюдать её выполнение:
===interpret.cmd===
/***/
arg line
interpret ( line )
===================
Usage example: interpret /***/; do i=0 to 255; say x2c(i); end
Timur Hi-Rullin
Incom-Svyaz, Inc.
[TZH-RIPN] [TZH-RIPE]
IRC nick: timson
===helv.cmd===
/* */
call RxFuncAdd "SysIni", "RexxUtil", "SysIni"
AppName = "PM_SystemFonts"
KeyName = "DefaultFont"
FontName = "8.Helv"
call SysIni "USER", AppName, KeyName, FontName||"0"x
exit
==============
===ws.cmd===
/* */
call RxFuncAdd "SysIni", "RexxUtil", "SysIni"
AppName = "PM_SystemFonts"
KeyName = "DefaultFont"
FontName = "9.WarpSans"
call SysIni "USER", AppName, KeyName, FontName||"0"x
exit
============
Вадим А. Сухоруков
===mp3play.cmd===
/* playng all *mp3z */
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
do i=1 to WORDS(SysDriveMap(,'USED'))
call SysFileTree word(SysDriveMap(,'USED'),i)"\*mp3", 'file', SFO
do m=1 to file.0
'd:\tools\mp123.exe --dart --raise_prio' file.m
end
end
=================
Alexander Anisimoff
IRC nick: ander
===dozer.cmd===
/* (C) vv */
call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
do while lines()
say linein()
call SysSleep 1
end
===============
Зачем? Для irc. Иногда бывает нужным сделать /exec -o <что-то-там> (-o
Обращаю внимание на два слэша перед словом "exec" в теле алиаса. Это
означает "оригинальный" exec (в противном случае происходит рекурсия).
и пихаем его куда-нибудь в изначально выполняемый скрипт. У меня, например,
подобные прибамбасы сидят в файле vvextras.irc, который "упомянут" (в виде
"^load vvextras.irc") в openchat.irc
alias exec {
//exec $* | dozer
}
Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий