TbMA
03-06-2005, 22:54
Использует reg.exe (наш любимый швейцарской ножик) и find.exe, проставляет переменные вида CDROM1, CDROM2 и т.д. (сколько есть).
И если находит на одном из них инсталляшку - проставляет InstallDrive
Временных файлов не использует.
@echo off
set CURRENT=1
for /f "usebackq delims==" %%i in (`reg find "HKLM\SYSTEM\MountedDevices" REG_BINARY "10 0x00640043 0x006f0052 0x006d" -y ^| find "\DosDevices\"`) do call :settin %%i
goto :next
:settin
set CDTMP=%1
set INTMP=%CDTMP:~-2%
set CDROM%CURRENT%=%INTMP%
if exist %INTMP%\WIN51 SET InstallDrive=%INTMP%
set /a CURRENT=%CURRENT%+1
goto :eof
:next
set CDTMP=
set CURRENT=
set INTMP=
И если находит на одном из них инсталляшку - проставляет InstallDrive
Временных файлов не использует.
@echo off
set CURRENT=1
for /f "usebackq delims==" %%i in (`reg find "HKLM\SYSTEM\MountedDevices" REG_BINARY "10 0x00640043 0x006f0052 0x006d" -y ^| find "\DosDevices\"`) do call :settin %%i
goto :next
:settin
set CDTMP=%1
set INTMP=%CDTMP:~-2%
set CDROM%CURRENT%=%INTMP%
if exist %INTMP%\WIN51 SET InstallDrive=%INTMP%
set /a CURRENT=%CURRENT%+1
goto :eof
:next
set CDTMP=
set CURRENT=
set INTMP=