35 lines
835 B
Plaintext
35 lines
835 B
Plaintext
|
$! DELTREE.COM
|
||
|
$
|
||
|
$ call deltree 'p1'
|
||
|
$ exit $status
|
||
|
$
|
||
|
$ deltree: subroutine ! P1 is a name of a directory
|
||
|
$ on control_y then goto dt_STOP
|
||
|
$ on warning then goto dt_exit
|
||
|
$ _dt_def = f$trnlnm("SYS$DISK")+f$directory()
|
||
|
$ if f$parse(p1) .eqs. "" then exit
|
||
|
$ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")'
|
||
|
$ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE")
|
||
|
$ _fp = f$parse(".DIR",p1)
|
||
|
$ dt_loop:
|
||
|
$ _f = f$search(_fp)
|
||
|
$ if _f .eqs. "" then goto dt_loopend
|
||
|
$ call deltree [.'f$parse(_f,,,"NAME")']*.*
|
||
|
$ goto dt_loop
|
||
|
$ dt_loopend:
|
||
|
$ _fp = f$parse(p1,".;*")
|
||
|
$ if f$search(_fp) .eqs. "" then goto dt_exit
|
||
|
$ set noon
|
||
|
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp'
|
||
|
$ set on
|
||
|
$ delete/nolog '_fp'
|
||
|
$ dt_exit:
|
||
|
$ set default '_dt_def'
|
||
|
$ goto dt_end
|
||
|
$ dt_STOP:
|
||
|
$ set default '_dt_def'
|
||
|
$ stop/id=""
|
||
|
$ exit
|
||
|
$ dt_end:
|
||
|
$ endsubroutine
|