@*ECHO OFF *SETLOCAL *UNALIAS * :: Shows current DLS files (up to 99), and allows to change it. SET now=%@FILENAME[%@REGQUERY[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectMusic\GMFilePath]] ECHO The current DLS is %now INKEY /K"YN" Do you want to change it? [Y/N] %%resp IFF %resp EQ Y THEN ECHO The other currently available DLS files in %SystemRoot%\system32\drivers are: SET nDLS=0 FOR %dls IN (%SystemRoot\system32\drivers\*.dls) ( SET fDLS=%@FILENAME["%dls"] IFF "%fDLS" NE "%now" THEN SET /A nDLS=%nDLS + 1 SET DLS_%nDLS=%fDLS ECHO (%@FORMAT[02,%nDLS]) %[DLS_%nDLS] ENDIFF ) ECHO (00) Don't change the DLS. SET which=100 DO UNTIL %which LE %nDLS .AND. "%which" NE "" INPUT /D /L2 Which one? [00-%@FORMAT[02,%nDLS]] %%which ENDDO SET which=%@EVAL[%which] IFF %which NE 0 THEN SET rt=%@REGSET[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectMusic\GMFilePath,REG_EXPAND_SZ,%%SystemRoot%%\SYSTEM32\drivers\%[DLS_%which]] IFF %rt NE 0 THEN ECHO Could not write registry value: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectMusic\GMFilePath ELSE ECHO The current DLS is %@REGQUERY[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectMusic\GMFilePath] now. ENDIFF ELSE ECHO No file change requested. Nothing done. ENDIFF ELSE ECHO No change requested. Nothing done. ENDIFF