connery@bnrmtv.UUCP (Glenn Connery) (01/28/86)
The following will do what you want. Just change to the parent of the directory you are trying to rename and run it. Think this came from PC Tech Journal. A debug session to create a similar program was in a recent PC Magazine... PAGE ,132 ; ; RENDIR - renames directories or volume labels... using DOS function ; 17H (FCB call). thus the program only works for directories ; immediately under the current one. ; ; from PC Tech Journal, April 1985, p. 41 ; COM SEGMENT ASSUME CS:COM,DS:COM ORG 5CH FCB1 LABEL BYTE DRIVE1 DB ? NAME1 DB 11 DUP(?) ORG 6CH FCB2 LABEL BYTE DRIVE2 DB ? NAME2 DB 11 DUP(?) ORG 100H RENDIR PROC MOV DX,OFFSET INVDR$ TEST AL,AL JNZ ERROR MOV DX,OFFSET INVPAR$ CMP NAME1,' ' JE ERROR CMP NAME2,' ' JE ERROR MOV SI,OFFSET FCB1 MOV DI,OFFSET OLDN MOV CX,12 REP MOVSB MOV SI,OFFSET NAME2 MOV DI,OFFSET OLDN+11H MOV CX,11 REP MOVSB MOV DX,OFFSET XFCB MOV AH,17H INT 21H TEST AL,AL JZ EXIT MOV DX,OFFSET INVNAM$ ERROR: MOV AH,9 INT 21H EXIT: INT 20H RENDIR ENDP INVDR$ DB 'Invalid drive id$' INVPAR$ DB 'Bad syntax: [d:]oldname newname$' INVNAM$ DB 'Name not found or already exists$' XFCB DB 0FFH ;Extended FCB ID BYTE DB 5 DUP(0) ATTR DB 18H ;Dirs & Volume Labels OLDN DB 37 DUP(0) COM ENDS END RENDIR ----- Glenn