$ VV = 'F$VERIFY(0) $ ! 27-MAY-1986 15:27:16 $ ! Documentation at the end of the procedure. $ on warning then goto sh_def $ SD_DIR = F$DIRECTORY() $ SD_DISK = F$trnlnm("SYS$DISK")+SD_DIR $ if p1.eqs."" then goto sh_def $ c = f$extract(0,1,p1) $ par = f$locate(c,"<.^>*@?") $ goto lab'par' $ lab7: $ if p1 .nes. "WHERE" then goto set_sav_sh $ p1 =f$parse(SD_DIR,,,,"no_conceal") - "][" - ".000000" - ".;" $ goto do_set $ lab0: $ p1 = sd_before $ goto do_set $ lab1: $ if p1.nes."." then goto no_dev $ p1 = f$trnlnm("sys$login") $ goto do_set $ lab2: $ if p1.eqs."^^" then goto top_level $ p1 = "[-]" $ goto do_set $ top_level: $ p1 = f$element(0,".",SD_DIR)-"]"+"]" $ goto do_set $ lab3: $ p1 = "-." + p1-c $ if f$locate(".",SD_DIR).ge.f$length(SD_DIR) then p1=p1-".-" $ goto no_dev $ lab4: $ if p2.nes."" then goto batch_subdir $ k = 1 $ b1 = "[" $ on warning then goto no_f $ f = f$search("[]*.dir",0) $ name = f$parse(f,,,"name") $ if f.eqs."".or.name.eqs."000000" then b1 = SD_DIR -"]" $ write sys$output f$fao("!/!AS!20* !%D!/",SD_DISK-"000000"-"[]",0) $ next: $ f = f$search(b'k'+"]*.dir",k) $ if f.eqs."" then goto no_f $ name = f$parse(f,,,"name") $ if name.eqs."000000" then goto next $ write sys$output f$fao("!#* !#*.!AS",k,K,name) $ b = b'k'+"."+name $ k = k+1 $ b'k' = b $ goto next $ no_f: $ if k.eq.1 then goto end $ k = k-1 $ goto next $ end: $ write sys$output "" $ if vv.eq.1 then goto set_verify $ exi $ batch_subdir: $ submit/queue='p2'/notify - gag_util:sdbatch /parameters='SD_DISK' $ if vv.eq.1 then goto set_verify $ exi $ lab5: $ if p2.eqs."" then inquire p2 "Logical name " $ opties = p3+p4+p5 $ if p1.eqs."@" then goto assign $ SD_DISK = f$parse(SD_DISK,,,,"no_conceal") - "][" - ".000000" - ".;" $ opties = opties+"/trans=conc" $ if p1.eqs."@." then SD_DISK = SD_DISK - "]" + ".]" $ assign: $ assign/nolog 'SD_DISK' 'p2' 'opties' $ show logical 'p2' /full $ if vv.eq.1 then goto set_verify $ exi $ set_sav_sh: $ if f$trnlnm(p1).nes."" then goto do_set $ reqdir = f$element(1,":",p1) $ if reqdir.eqs.":" then goto no_dev $ dev = f$element(0,":",p1) + ":" $ goto try_set $ no_dev: $ dev = "" $ reqdir = p1 $ try_set: $ if f$locate("[",reqdir).eq.f$length(reqdir) then reqdir := ['reqdir' $ p1 = dev + reqdir - "]" + "]" $! if f$locate("[",reqdir).eq.f$length(reqdir) then reqdir := ['reqdir'] $! p1 = dev+reqdir-"]"+"*]" $! reqdir = f$search(p1+"*.*") ! Effets de bord indesirables... $! p1=p1-"*" $! if reqdir.nes."" then p1=dev+f$parse(reqdir,,,"directory") $ set default 'p1' $ if f$parse(f$directory()).nes."" then goto sav_sh $ set default 'SD_DISK' $ if vv.eq.1 then goto set_verify $ exi %X184CC $ do_set: $ set def 'p1' $ sav_sh: $ SD_DIR = F$DIRECTORY()-"000000." $ set def 'SD_DIR' $ if SD_DISK.nes.F$trnlnm("SYS$DISK")+SD_DIR then sd_before == SD_DISK $ 'set_prmp' ! This works OK even if set_prmp is not defined !! $ sh_def: $ X_dir =f$parse(SD_DIR,,,,"no_conceal") - "][" - ".000000" - ".;" $ SD_DIR =f$parse(SD_DIR,,,,) - "][" - ".000000" - ".;" $ if X_dir.nes.SD_DIR then goto sh_def_full $ write sys$output SD_DIR $ if vv.eq.1 then goto set_verify $ exi $ sh_def_full: $ write sys$output SD_DIR+" ( "+X_dir+" )" $ if vv.eq.1 then goto set_verify $ exi $ lab6: $ type sys$input Set/Show Default Format: SD Show Default SD ^^ Go to top level of current directory SD ^ Go up one subdirectory level SD >TWO Go to .TWO of this subdirectory level SD < Restore most recent previous directory SD . Restore default directory SD .TWO Set Default to [Current.TWO] SD ONE.TWO.THREE Set Default to [ONE.TWO.THREE] SD * List subdirectories under this one SD * Submits SD * on the specified batch queue SD @ log_name Assign the current directory to log_name SD @. dot_dir Assign the dotted current directory to dot_dir SD where Remove logical name elements from directory $ eod $ if vv.eq.1 then goto set_verify $ exi $set_verify: set verify