home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / podstawy / dos / 4dos / 4uzytki / jambtm02.exe / MAKEDESC.BTM < prev    next >
Text File  |  1992-11-15  |  4KB  |  135 lines

  1. *REM This batch file is Freeware, free to use and redistribute unmodified *
  2. *REM Jouni Miettunen * jon@stekt.oulu.fi * Oulu * Finland * Europe * 1992 *
  3.  
  4. REM Create a _DESC.BTM file (when it is run it'll create descriptions)
  5. REM Note: 4desc 1.2 is great utility written by David Frey and Tom Bowden.
  6. REM Timestamp: 08-Nov-1992
  7.  
  8. setlocal^break on^unalias *^set arg=/a-d^if "%1"=="-?" goto info
  9.  
  10. REM Might be better to use.. (below) ..to avoid some trouble faced later.
  11. REM set arg=for /a-d 
  12.  
  13. REM Note: "describe" command cannot describe hidden or system files.
  14. REM Most annoying feature, _if_ you need to do it anyway. 4DOS 4.01 rev D.
  15.  
  16. alias my_desc=`iff "%@attrib[%1,h]"=="1" then^set h=1^attrib/q -h %1^endiff^iff "%@attrib[%1,s]"=="1" then^set s=1^attrib/q -s %1^endiff^describe %1 %2&^if "%h"=="1" attrib/q +h %1^if "%s"=="1" attrib/q +s %1^unset/q s h`
  17.  
  18. REM Did the user give any arguments?
  19. if "%@ascii[%1]" != "45" goto no_desc
  20.  
  21. :optiot
  22. set index=%@eval[%index+1]^set %@ascii[%@substr[%1,%index,1]]=1
  23. if %index lt %@eval[%@len[%1]-1] goto optiot^shift
  24.  
  25. REM Note: order of options should not matter, but it does.. place goto's last.
  26.  
  27. iff "%[%@ascii[d]]"=="1" then^set dirs=1^set arg=/a^endiff
  28. iff "%[%@ascii[e]]"=="1" then^set edit=1^endiff
  29. iff "%[%@ascii[i]]"=="1" then^set ignore=1^endiff
  30. iff "%[%@ascii[?]]"=="1" then^goto info^endiff
  31. iff "%[%@ascii[a]]"=="1" then^set auto=1^goto make^endiff
  32.  
  33. REM if no descript.ion file or you want to edit descriptions
  34. :no_desc
  35. iff not exist descript.ion .or. "%[edit]"=="1" then
  36.     iff not exist descript.ion then
  37.         inkey No descript.ion file !?! Do you want to create one? %%c
  38.         if "%c"=="n" .or. "%c"=="N" .or. "%@ascii[%c]"=="27" goto end
  39.     endiff
  40.     iff "%@search[4desc]" != "" then
  41.         4desc
  42.     else
  43.         for%[arg] %%x in (*.*) gosub add_desc
  44.     endiff
  45.     set ignore=1
  46. endiff
  47.  
  48. if not exist descript.ion goto no_desc
  49.  
  50. :make
  51.  
  52. REM create a new _DESC.BTM file
  53.  
  54. del/qz _desc.btm >& nul
  55. echo @echo off >> _desc.btm
  56. echo n: descriptions for files in Volume %@label[.] %_cwds on %_daten >> _desc.btm
  57.  
  58. my_desc _desc.btm    "give a description to some files"
  59. my_desc descript.ion    "description file"
  60.  
  61. if "%auto"=="1" goto auto
  62.  
  63. REM fill the new _DESC.BTM file
  64. REM Note: don't forget to leave space in between of "for" and "arguments"!
  65.  
  66. for%[arg] %%x in (*.*) gosub entry^goto end
  67.  
  68. REM add a new entry into _DESC.BTM
  69.  
  70. :entry
  71. iff "%@descript[%x]"=="" then
  72.     iff "%[ignore]"=="1" then
  73.         return
  74.     else
  75.         inkey %x is missing description! Do you want to add it? %%c
  76.         if "%c"=="n" .or. "%c"=="N" .or. "%@ascii[%c]"=="27" return
  77.         iff "%@search[4desc]" != "" then
  78.             4desc
  79.         else
  80.             my_desc %x
  81.         endiff
  82.     endiff
  83. endiff
  84.  
  85. echos describe %xt >> _desc.btm
  86. if %@len[%x] lt 7 echos `t` >> _desc.btm
  87. echos " >> _desc.btm
  88. echos %@descript[%x] >> _desc.btm
  89. echo " >> _desc.btm
  90. return
  91.  
  92. REM trouble with for command, had to make add_desc as a subroutine...
  93. REM Note: if need to give options to command, use command in some variable, too
  94. REM Note: to preserve %a from too early expansion, use %%a, not control-x%
  95. REM 4DOS 4.01 rev D
  96.  
  97. :add_desc
  98. iff "%[ignore]"=="1" then
  99.     if "%@describe[%x]" != "" my_desc %x
  100. else
  101.     my_desc %x
  102. endiff
  103. return
  104.  
  105. REM Automatic _DESC.BTM file creation from DESCRIPT.ION file. No questions.
  106. :auto
  107. iff exist descript.ion then
  108.     for %a in (@descript.ion) (
  109.         set name=%@word[0,%a]
  110.         echos describe %name >> _desc.btm
  111.         if %@len[%name] lt 7 echos `t` >> _desc.btm
  112.         echo t"%@substr[%a,%@eval[%@len[%name]+1]]" >> _desc.btm
  113.     )
  114. endiff^goto end
  115.     
  116. :info
  117. echo Usage: %@lower[%@name[%0]] [-options]
  118. text
  119.  
  120.     -a    automatic creation from descript.ion file
  121.     -d    directories included
  122.     -e    edit descriptions beforehand
  123.     -i    ignore missing descriptions
  124.     -?     this info
  125.     
  126. Creates a _DESC.BTM file to describe files in current directory.
  127.  
  128. Note:    There _cannot_ be any commas, DOS redirection characters, percents
  129.     or quotes in descript.ion file! Use _echoable_ descriptions.
  130. endtext
  131.  
  132. :end
  133. if "%@filesize[_desc.btm]"=="0" del/qz _desc.btm >& nul
  134. break off^quit
  135.