.CENTER ^^SRD---SORT DIRECTORY UTILITY.\\ .TITLE ^^SRD---SORT DIRECTORY UTILITY\\ .SPACING 1 .PARAGRAPH ^^SRD\\ IS A ^^RSX-11M\\ UTILITY ALLOWING A ^^UFD\\ TO BE SORTED INTO ALPHABETICAL ORDER, THEN LISTED OR UPDATED. ^THE DEFAULT FORMAT OF THE LISTING IS SUCH THAT IT CAN BE EDITED EASILY TO CREATE AN INDIRECT FILE FOR ^^PIP\\, FOR EXAMPLE, TO COPY THE FILES. ^THE DEFAULT ORDER OF THE LISTING IS SORTED BY THE FILE TYPE FIRST, THEN BY NAME. ^THE NAME SWITCH "^^/NAME\\" CAUSES THE SORT TO BE DONE BY NAME FIRST. ^THE FORMAT OF THE COMMAND LINE IS: .SKIP 1 .CENTER ^^[OUTFILE=] [UICSPEC] [/SW]\\ .PARAGRAPH ^RESPONDING TO THE "^^SRD>"\\ PROMPT WITH A NULL LINE CAUSES THE CURRENT ^^UFD\\ TO BE OUTPUT (IN ALPHABETICAL ORDER, SORTED BY TYPE FIRST) TO "^^TI:"\\. .PARAGRAPH ^THE "^^OUTFILE"\\ IS ANY FILE SPECIFIER IN STANDARD ^^RSX\\ FORMAT. ^THE DEFAULTS THAT APPLY IF AN OUTPUT IS GIVEN ARE: .SKIP 1 .CENTER ^^SY0:DIRECTORY.LST;0\\ .PARAGRAPH ^IF NO OUTPUT SPECIFIER IS GIVEN, THE DEFAULT IS "^^TI:\\". .PARAGRAPH "^^UICSPEC\\" IS THE DEVICE AND ^^UIC\\ PORTION OF A STANDARD FILE SPECIFIER. ^WILD CARDS ("*") ARE PERMITTED IN THE "^^UICSPEC"\\. .SKIP 1 .CENTER ^^LP:=[100,100]/NA\\ .SKIP 1 ^LISTS THE DIRECTORY FROM ^^SY0:\\[100,100] ON THE LINE PRINTER, SORTED BY NAME. .SKIP 2 ^^OPTIONS:\\ .PARAGRAPH ^^SRD\\ SUPPORTS A GROUP OF SWITCHES THAT ALLOW SELECTION OF CERTAIN FILES TO BE LISTED, CONTROL OF THE LISTING FORMAT, AND UPDATING OF THE DIRECTORY. .LEFT MARGIN 3 .SKIP 1 .INDENT -3 1. ^^SELECT VERSION: /SV\\ .BREAK ^THIS SWITCH RESTRICTS THE LISTING OF FILE NAMES TO ONLY THE HIGHEST VERSION. .SKIP 1 .INDENT -3 2. ^^DATE: /DA[:DD-MMM-YY]\\ .BREAK ^THIS SWITCH ALLOWS SELECTION OF FILES CREATED ON THE SPECIFIED DATE. ^IF NO DATE IS SPECIFIED, THE CURRENT DATE IS USED. ^THERE ARE TWO OTHER SWITCHES THAT MAY BE USED FOR DATE SELECTION: .SKIP 1 .CENTER ^^BEFORE: /BE[:DD-MMM-YY] .CENTER AFTER: /AF[:DD-MMM-YY]\\ .SKIP 1 ^WHEN ONE OF THESE OPTIONS IS USED, THE LISTING WILL INCLUDE FILES CREATED BEFORE OR AFTER THE SPECIFIED DATE AS WELL AS THOSE CREATED ON THE SPECIFIED DATE. .SKIP 1 .INDENT -3 3. ^^SELECT: /SE:NAME.TYP\\ .BREAK ^THIS SWITCH ALLOWS FILE NAMES TO BE SELECTED BASED ON A SUB-SET STRING MATCH WITH WILD CHARACTERS. ^THE SELECTION IS SATISFIED IF THE END OF THE TARGET FIELD IS REACHED WITHOUT FINDING A CHARACTER THAT DOES NOT MATCH. ^FOR EXAMPLE: .SKIP 1 .CENTER ^^/SE:M\\ .SKIP 1 ^THE SELECT SWITCH WITH ONLY AN "^M" SELECTS ALL FILES WITH "^M" AS THE FIRST CHARACTER IN THE NAME. ^THE "*" CAN BE USED FOR CLARITY AND COMPATIBILITY WITH ^^PIP\\: .SKIP 1 .CENTER ^^/SE:M???X.*\\ .SKIP 1 ^THIS OPTION WOULD SELECT ANY FILE WITH NAME STARTING WITH "^M", HAVING ANY CHARACTERS IN 2ND, 3RD AND 4TH POSITION, AND AN "^X" IN 5TH POSITION. ^THE "*" HAS THE SAME EFFECT AS A NULL STRING - MATCHES EVERYTHING. ^A SUB SWITCH TO "/^^SE\\" IS "^^/NE\\", WHICH CAUSES THE FILES SELECTED TO BE THOSE THAT DON'T MATCH, FOR EXAMPLE: .SKIP 1 .CENTER ^^/SE:S/NE\\ .SKIP 1 SELECTS ALL FILES THAT DO NOT START WITH "^S". .SKIP 1 .INDENT -3 4. ^^SELECTIVE DELETE: /SD\\ .BREAK ^THIS OPTION CAUSES ^^SRD\\ TO READ A LINE FROM "^^TI:\\" AFTER LISTING EACH FILE. ^IF THE FIRST CHARACTER OF THE LINE IS A "^Y", ^^SRD\\ DELETES THE FILE WHOSE NAME WAS JUST LISTED. ^ANY OTHER RESPONSE CAUSES ^^SRD\\ TO PROCEED WITHOUT DELETING THE FILE. ^ALL THE PREVIOUSLY SPECIFIED OPTIONS FOR SELECTION MAY BE USED, FOR EXAMPLE: .SKIP 1 .CENTER ^^SRD>/DA/SE:MAK/SD\\ .SKIP 1 ^THIS COMMAND CAUSES ^^SRD\\ TO SELECT ALL THE FILES CREATED ON THE CURRENT DATE WITH THE FIRST THREE CHARACTERS IN THE NAME "^^MAK\\" TO BE LISTED FOR SELECTIVE DELETION. .SKIP 1 ^THE SUBSWITCH ^^/DE\\ MAY BE APPLIED TO /^^SD\\ TO CAUSE ^^SRD\\ TO DELETE ALL SELECTED FILES AFTER LISTING, WITHOUT READING FROM THE TERMINAL. ^IF THE LISTING IS NOT DESIRED, THE "/-^^LI\\" SWITCH CAN BE APPLIED. .SKIP 1 .INDENT -3 5. ^^FULL LISTING: /FU[:\\N] .BREAK ^THIS SWITCH CAN BE APPLIED TO ANY ^^SRD\\ COMMAND. ^IN ADDITION TO FILE NAME AND TYPE, A FULL LISTING INCLUDES: .NOFILL .LEFT MARGIN 15 1. ^CREATION DATE AND TIME. 2. ^FILE SIZE - USED AND ALLOCATED. 3. ^FILE ^^ID.\\ 4. ^OWNER ^^UIC.\\ 5. ^PROTECTION CODES. .SKIP 1 .FILL .LEFT MARGIN 3 ^THE NUMBER OF CHARACTERS PER LINE IN THE LISTING CAN BE SET TO ANY VALUE BETWEEN 72. AND 132. INCLUSIVE BY SPECIFYING THIS VALUE WITH THE "^^/FU\\" SWITCH. ^FOR EXAMPLE: .SKIP 1 .CENTER ^^LP:=/SE:*.TSK/FU:132.\\ .SKIP 1 ^THIS COMMAND WILL PRODUCE A FULL LISTING, 132 COLUMNS WIDE, ON THE LINE PRINTER, FOR ALL TASK FILES IN THE CURRENT DIRECTORY. .SKIP 1 .INDENT -3 ^^6. NO LISTING: /-LI\\ .BREAK ^THIS SWITCH CAN BE APPLIED TO ANY ^^SRD\\ COMMAND TO SUPPRESS THE LISTING OF FILE NAMES. .SKIP 1 .INDENT -3 7. ^^WRITE BACK: /WB\\ .BREAK ^THIS OPTION CAUSES ^^SRD\\ TO WRITE THE DIRECTORY BACK TO THE DISK IN THE ORDER SPECIFIED. ^THIS NOT ONLY SORTS THE DIRECTORY, BUT COMPRESSES IT. ^THIS REDUCES SEARCH TIME BY ^^FCP\\ IF THE DIRECTORY HAS HAD MANY FILES DELETED. .SKIP 1 .CENTER ^^SRD>DK1:[100,101]/-LI/WB/NA\\ .SKIP 1 ^THIS COMMAND CAUSES ^^SRD\\ TO READ THE DIRECTORY ^^DK1:[100,101]\\, SORT THE DIRECTORY BY NAME, THEN WRITE IT BACK WITHOUT GENERATING A LISTING. ^WRITE ACCESS TO THE DIRECTORY IS REQUIRED AND WRITE FAILURE IS USUALLY DUE TO A PROTECTION VIOLATION. .LEFT MARGIN 0 .PAGE .CENTER ^^SUMMARY OF SWITCHES.\\ .SKIP 1 .NOFILL ^^/AF[:DD-MMM-YY]\\ - ^AFTER. .SKIP 1 ^^/BE[:DD-MMM-YY]\\ - ^BEFORE. .SKIP 1 ^^/DA[:DD-MMM-YY]\\ - ^DATE. .SKIP 1 ^^/FU[:\\N] - FULL LISTING (N COLS. WIDE). .SKIP 1 ^^/-LI\\ - NO LISTING. .SKIP 1 ^^/NA\\ - SORT BY NAME FIRST. .SKIP 1 .LEFT MARGIN 0 ^^/SD\\ - ^SELECTIVE DELETE. .LEFT MARGIN 5 ^SUBSWITCH: ^^/DE\\ - ^DELETE WITHOUT CONFIRMATION. .SKIP 1 .LEFT MARGIN 0 ^^/SE:NAME.TYP\\ - ^SELECT FILE BY PATTERN. .LEFT MARGIN 5 ^SUBSWITCH: ^^/NE\\ - ^NO MATCH. .LEFT MARGIN 0 .SKIP 1 ^^/SV\\ - ^SELECT VERSION. .SKIP 1 ^^/WB\\ - ^WRITE BACK.