HP OpenVMS Systems

ask the wizard
Content starts here

DIRECTORY sorted by date?

» close window

The Question is:

How can I within DCL get a directory listing equivalent to the UNIX command
l -tr?  That is to say a DCL way to get an oldest to newest files directory

The Answer is :

  This is not directly available at the OpenVMS DCL prompt, though
  tools such as Fileview can perform this task, and simple DCL
  command procedures are available.
  Attached are two variations.  The first is rather shorter, but
  displays the time in an unusual format.  PIPE could also be used.
  The DECUS "SOD" tool (V00473) may also be of interest here.
$define lib$dt_format lib$date_format_022
$direct/dat/wid=fil=40/out=sys$scratch:x.x 'p1
$sort/key=(pos=41,siz=10) sys$scratch:x.x tt:
$delete sys$scratch:x.x.
$direct/dat/wid=fil=40/out=sys$scratch:x.x 'p1
$sort/spec=sys$input sys$scratch:x.x tt:
/field=(name=year,    position:50,size:4)
/field=(name=month,   position:46,size:3)
/field=(name=day,     position:43,size:2)
/condition=(name=jan,test=(month EQ "JAN"))
/condition=(name=feb,test=(month EQ "FEB"))
/condition=(name=mar,test=(month EQ "MAR"))
/condition=(name=apr,test=(month EQ "APR"))
/condition=(name=may,test=(month EQ "MAY"))
/condition=(name=jun,test=(month EQ "JUN"))
/condition=(name=jul,test=(month EQ "JUL"))
/condition=(name=aug,test=(month EQ "AUG"))
/condition=(name=sep,test=(month EQ "SEP"))
/condition=(name=oct,test=(month EQ "OCT"))
/condition=(name=nov,test=(month EQ "NOV"))
/condition=(name=dec,test=(month EQ "DEC"))
/key=(if      jan then 01
      else if feb then 02
      else if mar then 03
      else if apr then 04
      else if may then 05
      else if jun then 06
      else if jul then 07
      else if aug then 08
      else if sep then 09
      else if oct then 10
      else if nov then 11
      else if dec then 12
      else 13)
$delete sys$scratch:x.x.
$ exit

answer written or last revised on ( 9-DEC-1999 )

» close window