home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / batnmore.z!p / CHMOD.BTM < prev    next >
Text File  |  1992-11-15  |  2KB  |  60 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 chmod aka unixlike interface to attrib
  5. REM Timestamp 15-Nov-1992
  6.  
  7. break on^setlocal^unalias *
  8.  
  9. REM Default actions and settings
  10. iff %#==0 then^attrib/p^goto end^endiff
  11. if %@substr[%1,1,1]==? goto info
  12. set arg=d^set atr=%@substr[%1,,1]
  13.  
  14. REM Do we have arguments or a file? Change settings before re-setting them.
  15. iff "%atr" != "-" .and. "%atr" != "+" .and. "%atr" != "=" .and. not exist %1 then
  16.  unset/q atr^goto work^endiff
  17. set arg=q
  18.  
  19. :optiot
  20. set index=%@eval[%index+1]^set %@ascii[%@substr[%1,%index,1]]=1
  21. if %index lt %@eval[%@len[%1]-1] goto optiot^shift
  22.  
  23. if "%[%@ascii[d]]"=="1" set arg=%arg%d
  24. if "%[%@ascii[p]]"=="1" set arg=%arg%p
  25. if "%[%@ascii[R]]"=="1" set arg=%arg%s
  26. if "%[%@ascii[v]]"=="1" set arg=%@substr[%arg,1]
  27. if "%[%@ascii[a]]"=="1" set atr=%atr%a
  28. if "%[%@ascii[h]]"=="1" set atr=%atr%h
  29. if "%[%@ascii[r]]"=="1" set atr=%atr%r
  30. if "%[%@ascii[s]]"=="1" set atr=%atr%s
  31. iff %@len[%atr]==1 then^unset atr^set arg=%@substr[%arg,1]^endiff
  32. iff %@ascii[%atr]==61 then^alias attrib `*attrib%1 -ahrs %3^*attrib %&`^set atr=+%@substr[%atr,1]^endiff
  33.  
  34. :work
  35. attrib/%arg %atr %&>&>nul^goto end
  36.  
  37. :info
  38. echo Usage: %@lower[%@name[%0]] [ [-|+|=] options ] filelist
  39. text
  40.     -    remove attributes
  41.     +    add attributes
  42.     =    set attributes
  43.  
  44.     a    archive attribute
  45.     h    hidden attribute
  46.     r    read-only attribute
  47.     s    system attribute
  48.  
  49.     d    modify also directory attributes
  50.     p    pause after each full screen
  51.     R    recursive
  52.     v    verbose
  53.     ?    info
  54.  
  55. Without any options you see current attributes.
  56. endtext
  57.  
  58. :end
  59. break off^quit
  60.