home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / podstawy / dos / 4dos / 4uzytki / ez-btm11.exe / EX.BTM < prev    next >
Text File  |  1994-05-14  |  12KB  |  507 lines

  1. : EX.BTM
  2. : A library of subprograms. Run with the name of any of the subprograms
  3. : specified below + commands / options / switches. See EX-HLP.BTM (or
  4. : type 'EX H option') for more details on each sub-program.
  5. : (file previously called DO.BTM. Renamed EX.BTM because of clashes with
  6. : 4DOS 5.x DO command.)
  7.  
  8. : Itamar Even-Zohar
  9. : Porter Chair of Semiotics, Tel Aviv University
  10. : Tel Aviv 69978, Israel
  11. : itamarez@plato.tau.ac.il, or itiez@ccsg.tau.ac.il
  12. :
  13. if "%1" == "" goto CONTENTS
  14. goto begin
  15.  
  16. :contents
  17. cls
  18. text
  19.  
  20. Usage: EX function [options]
  21.  
  22. where function stands for
  23.  
  24.  HELP or H <command> .... Explanations on each of the following
  25.  
  26.  ATB [h|s|r] .............Makes a list of files with H, S or R attributes
  27.                           for default disk.
  28.  CA|ED................... Calls specified file via Nota Bene, if loaded;
  29.                           else calls it (for CA) via Buerg's LIST|(for
  30.                           ED) via PED
  31.  CI-HIDE {-|+} <filename> Globally unhides/hides specified files
  32.  DA|DAP ..................Puts time and full date (da=24 hours; dap=12+12)
  33.  GR|GREPFV .............. Runs GREPFV for searching strings in archives
  34.  NOCF|NOF ................Runs NOCZ.COM to strip CTRL-Z from specified file
  35.  SER|SEE|SEARCH ......... Searches a file / group of files for a string,
  36.                           using SGREP, redirecting the items found to
  37.                           a file called SEARCH.TMP, then calls this file
  38.  SIM .....................Calls SIMTEL20 catalogue from C: or A:
  39.  U2D|CRLF ................Adds CR+LFs to file(s) via UNIX2DOS.COM
  40.  XX <archive> <program>.. Runs program from an alternative COMLIB.ZIP file
  41.  
  42. endtext
  43. inkey /K"YN[ESC] [Enter]" ==`>` Show more? (Y/Enter/Spacebar | N/ESC) %%rep
  44. set rep=%@upper[%rep]
  45. iff %rep == %@char[27] .or. %rep == N then Quit
  46. elseiff %rep == Y .or. %rep == @28 .or. %rep == @57 then
  47. goto more_text
  48. endiff
  49.  
  50. :more_text
  51. cls
  52. text
  53.  
  54.  ALS ....................... Reload aliases file and report
  55.  CHKP <name of pgm> ........ Check and report if a specified pgm is loaded
  56.  DUP ....................... Find doubles
  57.  SEF <string>............... Look for file(s) through list of file
  58.                               descriptions and filenames
  59.  SRDX ...................... Resize dynamic ramdisk created by SRDISK
  60.  UMBMEM|UMB ................ Report how much free UMB memory left
  61.  
  62. endtext
  63.   quit
  64.  
  65. :begin
  66. if %1 == q quit
  67. goto %1
  68. quit
  69.  
  70. :HELP
  71. :H
  72. call EX-HLP %2
  73. quit
  74.  
  75. :------------------------------------------------------Date & time
  76. :DA
  77. :dap
  78. :   Puts current date and time. DA - 24 hours; DAP = 12+12
  79. setlocal
  80. :fullmonth
  81. set date=%@SUBSTR[%_date,0,2]
  82. iff %date==01 then ^ set da=January ^
  83.   elseiff %date==02 then ^ set da=February^
  84.   elseiff %date==03 then ^ set da=March^
  85.   elseiff %date==04 then ^ set da=April^
  86.   elseiff %date==05 then ^ set da=May^
  87.   elseiff %date==06 then ^ set da=June^
  88.   elseiff %date==07 then ^ set da=July^
  89.   elseiff %date==08 then ^ set da=August^
  90.   elseiff %date==09 then ^ set da=September ^
  91.   elseiff %date==10 then ^ set da=October^
  92.   elseiff %date==11 then ^ set da=November^
  93.   elseiff %date==12 then ^ set da=December^
  94. endiff
  95.  
  96. rem -------- eliminates "0" from day's date --------
  97. set dat=%@substr[%_date,3,2]
  98. iff %@index[%dat,0] eq 0 then
  99. set dat=%@substr[%_date,4,1]
  100. goto inform
  101.   else
  102. set dat=%@substr[%_date,3,2]
  103.   endiff^
  104. rem --------- end of elimination procedure ---------
  105.  
  106. :inform
  107. if .%1==.dap gosub plain_time
  108. if %@eval[%_row] gt 22 (cls^screen 1 0)
  109. screen %@eval[%_row] 3 %da %dat 19%@substr[%_date,6,2] -- %_time
  110. drawbox %@eval[%_row-1] 0 %@eval[%_row+1] 35 1 whi on bla
  111. echo.
  112. endlocal
  113. quit
  114. :----------------------------------------------------Hide/Unhide
  115. :ci-hide
  116. @echo off
  117. shift
  118.  
  119. iff "%1"=="" .Or. "%2"=="" then
  120. goto syntax
  121. :syntax
  122. text
  123.      SYNTAX: CI-HIDE {-|+} <filename>
  124.  
  125.      Globally hides /unhides specified files:
  126.      '-' = unhiding, '+' = hiding
  127.  
  128.      For example:
  129.  
  130.      ex CI-HIDE - DESC*.*
  131.      will unhide all DESC*.* files on the whole disk
  132. endtext
  133. quit
  134. endiff
  135.  
  136. setlocal
  137. cdd c:\
  138. set s=s
  139. set d=d
  140.  
  141. iff .%1==.- then
  142.   set desc=-h
  143.     elseiff .%1==.+ then
  144.   set desc=+h
  145. endiff
  146.  
  147. iff .%desc==.-h then
  148.   set msg=Unhiding
  149.     elseiff .%desc==.+h then
  150.   set msg=Hiding
  151. endiff
  152.  
  153. echo.
  154. echo ==`>` %msg all %@upper[%2] files
  155.  
  156. global /Q /I attrib %desc %2 >& nul
  157.  
  158. :end
  159. cdd -
  160. echo.
  161. set msg=%@substr[%msg,0,%@eval[%@LEN[%msg]-3]]den
  162. rem (finds length of %msg, extracts last 3 charcaters, adds 'den')
  163. echo ==`>` All %@upper[%2] files %msg
  164. echo.
  165. endlocal
  166. quit
  167. :---------------------------------------------Alternative Comlib
  168. :XX
  169. : Runs a pgm from an alternative zip file without extracting it
  170. : by using Ledbetter's X.COM, a freeware which runs programs
  171. : from a ZIP file.
  172. : SYNTAX: EX XX alternative_comlib command
  173. : (the ZIP extension may be ommitted)
  174.  
  175. SHIFT
  176.  
  177. iff "%1"=="" then^echo SYNTAX: EX XX alternative_comlib command / program_name^
  178. quit^endiff
  179.  
  180. setlocal
  181. set oldlib=%comlib
  182.  
  183. :----find out if path indicated and/or extension [zip] typed-----
  184. iff %@index[%1,.zip] gt 0 .AND. %@index[%1,\] lt 0 then
  185.       set comlib=%_cwds%%1^goto run
  186.     elseiff %@index[%1,.zip] gt 0 .AND. %@index[%1,\] ge 0 then
  187.       set comlib=%1^goto run
  188.     elseiff %@index[%1,.zip] lt 0 .AND. %@index[%1,\] lt 0 then
  189.       set comlib=%_cwds%%1.zip^goto run
  190.     elseiff %@index[%1,.zip] lt 0 .AND. %@index[%1,\] ge 0 then
  191.       set comlib=%1.zip^goto run
  192. endiff
  193. :-----------------end of procedure-------------------------------
  194. :run
  195. :    Now run the external program X.COM
  196. x %2&
  197.  
  198. endlocal
  199. quit
  200. :---------------------------------------------------Call/Edit file
  201. :CA
  202. :ED
  203. setlocal
  204.  
  205. gosub Buerg
  206.  
  207. iff %1==CA then^set ca=%list^elseiff %1==ED then^set CA=ped^endiff
  208. rem            (change %list in label Buerg)
  209. rem                       change PED here -->           ^^^ 
  210. : CA - calls specified file via Nota Bene, if loaded; else uses LIST
  211. : ED - calls specified file via Nota Bene, if loaded; else uses PED
  212. shift
  213.  
  214. :nb
  215. iff %pgm==nb then
  216. gosub NBFI
  217. rem NBFI checks if file CA.RN exists.
  218. if .%1==. set cal=ca
  219. keystack 0 "%cal %1" enter^@exit
  220.   else
  221. %ca %1
  222.   endiff
  223.  
  224. endlocal
  225. quit
  226. :----------------------------------------------------SIMTEL20
  227. :SIM
  228. :    Calls file SIMIBM.LST from hard disk or drive A:
  229. shift
  230.  
  231. setlocal
  232. set simdisk=c:\kr\sim
  233. rem           ^^^^^^^
  234. set simfloppy=A
  235. rem           ^^^^^^^ Change locations above '^^...' strings to suit yours!
  236. set simlist=simidx.lst
  237.  
  238. iff exist %simdisk\%simlist then
  239. keystack 0 "\%1&" enter
  240. list %simdisk\%simlist
  241. quit
  242.   else
  243. echo Insert SIMTEL20 diskette in %simfloppy:, then
  244. pause
  245. pushd %simfloppy:\
  246. keystack 0 "\%1&" enter
  247. list %simlist
  248. popd
  249.   endiff
  250.  
  251. endlocal
  252. quit
  253. :--------------------------------------------------GREPFV output
  254. :gr
  255. :grepfv
  256.  
  257. :        Uses GREPFV to search a string in archives (ARC, ZIP, LZH),
  258. :        redirect it to a file, then call the file to screen.
  259. shift
  260. iff "%1"=="" .or. "%1"=="?" then
  261. ex h gr
  262. quit
  263. endiff
  264.  
  265. iff "%2"=="" then
  266. echo File(s) not specified
  267. quit
  268. endiff
  269.  
  270. iff not exist %2 then
  271. echo %@upper["%2"] not found
  272. quit
  273. endiff
  274.  
  275. :grep
  276. setlocal
  277. set grepfv=grepfv7
  278. rem              ^ update when relevant
  279. call settemp.btm
  280. set sefile=%temp%grep.tmp
  281.  
  282. iff "%@alias[ca]" == "" then
  283. alias ca `ex ca`
  284. endiff
  285.  
  286. %grepfv "%1" %2 %temp >%sefile
  287.  
  288. ca %sefile
  289.  
  290. endlocal
  291. quit
  292. :------------------------------------SGREP searched items to file
  293. :ser
  294. :see
  295. :search
  296.         : Redirects items found by SGREP in specified file to
  297.         : a file called SEARCH.TMP on your temporary drive.
  298.         : If you have not defined a temporary drive, the program
  299.         : will put the file on your last drive (C:, D:, etc.)
  300.  
  301. SHIFT
  302. iff .%2 == . then
  303. echo USAGE
  304. echo EX SEE item filename
  305. echo (wildcards allowed)
  306. quit
  307. endiff
  308.  
  309. echo wait . . .
  310. setlocal
  311.  
  312. call settemp.btm
  313. set seefile=%temp%search.Tmp
  314.  
  315. iff exist %@search[EX.BTM] then
  316. set list=ex ca
  317.   else
  318. set list=list /w
  319.   endiff
  320.  
  321. (echo You were looking for "%1"^
  322.  echo ──────────────────────────────────────────────────────────────────────────── ^
  323.  sgrep -xfl %3 "%1" %2)>%seefile
  324. %list %seefile
  325.  
  326. endlocal
  327. quit
  328. :-------------------
  329. :dscf
  330. shift
  331.   for %f in (%1) (
  332.     iff not "%@descript[%f]"=="" then
  333.       echo %@full[%f] %@descript[%f]
  334.     else
  335.       screen %_row 0
  336.     endiff
  337.   )
  338. quit
  339. :-----------------------------------------------Removes CTRL-Z
  340. :nocf
  341. :nof
  342. : Removes CTRL-Z from a file, by running NOCZ.COM.
  343. : September 6, 1992
  344. :
  345. : NOCZ.COM is downloadable from simtel20<msdos.txtutl>nocz12.arc
  346. shift
  347.  
  348. if .%1==. goto help_nof
  349.  
  350. setlocal
  351.  
  352. gosub temp_file
  353.  
  354. :nocz
  355. echo Running NOCZ. Wait ...
  356. nocz %1 > %fn && move /q %fn %1
  357. echo CTRL-Z removed from %@upper[%1]
  358.  
  359. endlocal
  360. quit
  361.  
  362. :help_nof
  363. echo   Syntax:
  364. echo   %0 filename
  365. quit
  366. :-----------------------------------------------List of H|S|R atb
  367. : ATB.BTM makes a list of files with H, S or R attributes from
  368. : the whole default disk.
  369. : Syntax: ATB [h|s|r]
  370. : If no attribute specified, ATB will look for H (hidden files)
  371. :
  372. :atb
  373. shift
  374. setlocal
  375. set hlist=d:\hlist
  376. rem       ^^^^^^^^ change as necessary
  377. if exist %hlist del /q %hlist
  378. if .%1==. set 1=h
  379. cdd %_disk:\
  380. if .%1==.h set lst=Hidden
  381. if .%1==.r set lst=Read Only
  382. if .%1==.s set lst=System
  383.  
  384. echo ==`>` Making a list of '%lst' files
  385. global /q /i dir /klmf /a%1% >>%hlist >&> nul
  386. *list %hlist
  387. endlocal
  388. quit
  389. :-----------------------------------------------Adds CR-LF via Unix2dos
  390. :unix2dos
  391. :crlf
  392. :u2d
  393. : Adds CR-LF via UNIX2DOS.COM to file or set of files.
  394. : (downloadable from SIMTEL20 <MSDOS.TXTUTL>, file DOS2UNIX.ZIP)
  395. : Syntax: EX u2d filename|wildcards [@takefile]
  396. : February 19, 1993, Itamar Even-Zohar / itiez@ccsg.tau.ac.il
  397. :
  398. shift
  399. if .%1==. goto help_ud
  400.  
  401. setlocal
  402.  
  403. :1file
  404. if %@index[%1,@] eq 0 goto takefile
  405. echo Inserting CR-LFs. Wait ...
  406. unix2dos %1
  407. goto end_ud
  408.  
  409. :help_ud
  410. echo   Syntax:
  411. echo   %0 filename or %0 @filename (list file)
  412. quit
  413.  
  414. :takefile
  415. echo Inserting CR-LFs. Wait ...
  416. for %f in (%1) do unix2dos %f
  417.  
  418. :count_ud
  419. :    Checks if the files exists and only then adds it to the counter.
  420. :    I would have preferred an internal errorlevel code, but none seems
  421. :    to work, so I've settled for 'if exist'.
  422. set num=0
  423. *for %f in (%1) do (
  424.    if exist %f (
  425.     set num=%@eval[%num+1]
  426.    )
  427.  )
  428.  
  429. :end_ud
  430. if %_row ge 21 (pause^cls)
  431. if %num==0 set num=No
  432. scrput %@eval[%_row+1] 0 bri whi on bla ==`>` CR-LFs inserted to file(s)
  433. endlocal
  434. quit
  435. :-----------------------Subprograms embedded in XC.BTM
  436. :ALS
  437. :CHKP
  438. :DUP
  439. :SEF
  440. :SRDX
  441. :UMBMEM
  442. :UMB
  443. call xc %1&
  444. quit
  445. :---------------------------------end of sub-programs
  446.  
  447. :==================== SUB-ROUTINES =================
  448. :NBFI
  449. iff not "%@search[CA.RN]" == "" then
  450. set cal=run ca.rn
  451.  else
  452. set cal=ca
  453.  endiff
  454. return
  455. :-------------------
  456. :Buerg
  457. iff not "%@alias[list]" == "" then
  458. unalias list
  459. endiff
  460. gosub ex_list?
  461. return
  462.  
  463. :ex_list?
  464. rem     Checking if Buerg's LIST exists; else registers to use
  465. rem     4DOS internal command ("list").
  466. :
  467. iff not "%@search[list.com]" == "" then
  468. set list=%@search[list.com]
  469.  else
  470. set list=list
  471.  endiff
  472. return
  473. :-------------------
  474. :plain_time
  475. : Routine to convert 24 hours time to AM and PM time
  476. set ti=%@substr[%_time,0,2]
  477. if %ti gt 12 goto compute
  478. goto low_time
  479.  
  480. :compute
  481. if %ti=13 set ti=1
  482. if %ti=14 set ti=2
  483. if %ti=15 set ti=3
  484. if %ti=16 set ti=4
  485. if %ti=17 set ti=5
  486. if %ti=18 set ti=6
  487. if %ti=19 set ti=7
  488. if %ti=20 set ti=8
  489. if %ti=21 set ti=9
  490. if %ti=22 set ti=10
  491. if %ti=23 set ti=11
  492. if %ti=24 set ti=12
  493.  
  494. set sec=%@substr[%_time,2]
  495. set _time=%ti%%sec PM
  496. return
  497.  
  498. :low_time
  499. set _time=%_time AM
  500. return
  501. :-------------------
  502. :temp_file
  503. call settemp.btm
  504. set fn=%@unique[%temp]
  505. return
  506. :-------------------
  507.