Уж несколько лет как мною нежно любим бывший шароварный, а ныне опенсурсный шелл 4os2. Среди прочих приятностей в нём присутствует и запуск по расширению. Скажем если прописать в CONFIG.SYS
SET .pl=S:\OS2\APPS\perl5\bin\perl.exe
то при вводе в командную строку файла с расширением .pl он отправится на выполнение перлу. Всё хорошо, но прописывать кучу системных переменных на все расширения это засорять конфиг и плодить лишние сущности. Но это-же OS/2! Как оказалось, если прописать в CONFIG.SYS строчку вида
SET .*=S:\Scripts\WPSOpen.cmd
где WPSOpen.cmd простенький до безобразия скрипт на REXX]],
/* Classic REXX
Simple WPS associations runner for 4OS2
INSTALLATION:
1. Put WPSOpen.cmd то directory in PATH environment
2. add SET .*=WPSOpen.cmd to your CONFIG.SYS
*/
/* REXX util registration. */
IF RxFuncQuery('SysLoadFuncs') THEN DO
CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
CALL SysLoadFuncs
END
/* Get filename. */
PARSE ARG CMDL
/* Check Argument present. */
IF ARG() = 0 THEN DO
Say 'Usage: WPSOpen.cmd FileName'
Exit 1
END
/* Handle quoted / unquoted string. */
IF Pos( '"', CMDL ) > 0 THEN
PARSE ARG '"'FileName'"'
ELSE
PARSE ARG FileName
/* Open file via WPS */
CALL SysSetObjectData FileName, "OPEN="DEFAULT";"
то набрав в командной строке, например:
[f:\music]"08. An eye for an eye.mp3"
мы увидим окошко любимого плеера и услышим музыку. При этом если в конфиг сисе прописаны другие ассоциации (на тот-же перл или питон) то они как работали так и будут продолжать работать не через WPS-ассоциации.
Обсуждение