var RecurseDirectories if ParamStr(2) = '' or not ExistDir(ParamStr(2)) Writeln 'Usage: locase directory [/R]' exitmenu endif RecurseDirectories = OptionSwitch(CmdLine,'R') ReadLongNames WholeFileNames On ReadSubdirectories CleanFileName(ParamStr(2)) exitmenu Procedure ReadSubdirectories (Dir) var Subs Files SaveDir SaveDir2 SaveDir = CurrentDirectory ChDir Dir IncludeDirectories Off DirectoriesOnly Off ReadDirectory(Dir,Files) Loop Files Writeln 'Renaming: ' LoopVal ' to ' LowerCase(LoopVal) FileRename LoopVal LowerCase(LoopVal) EndLoop Dispose(Files) if RecurseDirectories IncludeDirectories On DirectoriesOnly On WholeFileNames On ReadDirectory(Dir,Subs) Loop Subs Writeln Writeln 'Renaming: ' LoopVal ' to ' LowerCase(LoopVal) FileRename LoopVal LowerCase(LoopVal) Writeln SaveDir2 = CurrentDirectory ChDir(LoopVal) ReadSubdirectories('.') ChDir(SaveDir2) EndLoop Dispose(Subs) endif ChDir saveDir EndProc