@ECHO OFF REM SIZE_MAX :: Limit of RAMDISK - set as desired REM SIZE_SCSIRAID :: size reserved for SCSIRAID drivers - current used RAM(without Broadcom) in my driverpack REM SIZE_SYS :: size reserved for main system files - depends on your build REM WIM_REZERV :: RAM rezerver for WIM boot REM LABEL :: Lebel of disk REM FILESYSTEM :: NTFS for disk more or equal then 32Mb, FAT for disk less then 32 Mb - autodetected value REM MOUNTPOINT :: %RAMDRV% - "B:" by default REM FILESYSTEM :: NTFS for disk more or equal then 32Mb, FAT for disk less then 32 Mb - autodetected value REM PACK :: Key for creation compressed disk - always packed for NTFS and non-packed for FAT - autodetected value REM WIM_BOOT :: 1=WIM 0=non WIM - autodetected value REM SIZE :: Total RAM - autodetected value REM SIZE_FREE :: Free RAM - autodetected value REM SIZE_WIM :: size of WIM-file - autodetected value SET "SIZE_MAX=512" SET "SIZE_SCSIRAID=14" SET "SIZE_SYS=52" SET "WIM_REZERV=8" SET "LABEL=RAMDISK" SET "MOUNTPOINT=%RAMDRV%" SET "FILESYSTEM=NTFS" SET "PACK=/C" REG QUERY "HKLM\SYSTEM\ControlSet001\Services\ImDisk" /v "ImagePath" 1>NUL 2>NUL||(ECHO ImDisk not present in current system!&EXIT 0) IF NOT EXIST "%SystemDrive%\boot.sdi" (SET "WIM_BOOT=0") ELSE (SET "WIM_BOOT=1") IF "%WIM_BOOT%"=="1" FOR /F "USEBACKQ TOKENS=3 DELIMS=^>^<" %%a IN (`TYPE "%SystemDrive%\$wimdesc"`) DO SET "SIZE_WIM=%%a" IF "%SIZE_WIM%"=="" (SET /A "SIZE_WIM=0") ELSE (SET /A "SIZE_WIM=%SIZE_WIM%/0x100000+%WIM_REZERV%") FOR /F "USEBACKQ TOKENS=1,3 DELIMS=: " %%a IN (`RamStatus.exe`) DO IF /I "%%a"=="Total" (SET /A "SIZE=%%b/0x400") ELSE (IF /I "%%a"=="Free" SET /A "SIZE_FREE=%%b/0x400") IF "%SIZE%"=="" SET /A "SIZE=1"&CALL :M1&EXIT 0 IF "%SIZE_FREE%"=="" SET /A "SIZE=1"&CALL :M1&EXIT 0 SET /A "SIZE=%SIZE%-%SIZE_SCSIRAID%-%SIZE_SYS%-%SIZE_WIM%" IF %SIZE% LEQ 5 ( REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\999 /V 991 /T REG_SZ /F /D "||xpeinit.exe -f -m """Оптимизация памяти...""" 0_freemem.cmd" SET /A "SIZE=1" CALL :M1 EXIT 0) IF %SIZE% LEQ 32 SET /A "SIZE=%SIZE%/6"&CALL :M1&EXIT 0 IF %SIZE% LEQ 256 SET /A "SIZE=(%SIZE%+8)/8"&CALL :M1&EXIT 0 IF %SIZE% GTR 256 SET /A "SIZE=(%SIZE%-124)/4"&CALL :M1&EXIT 0 EXIT 0 :M1 IF %SIZE% GTR %SIZE_MAX% SET /A "SIZE=%SIZE_MAX%" IF %SIZE% LSS 32 SET "FILESYSTEM=FAT" IF "%FILESYSTEM%"=="FAT" SET "PACK=" imdisk.exe -a -t vm -m %MOUNTPOINT% -s %SIZE%M -p "/fs:%FILESYSTEM% /q /y /v:%LABEL% %PACK%" GOTO :EOF