PassMark OSFMount might still be missing some features compared to other available RAM drive software out there, but it is free and it has received a number of improvements lately.
Install softwareDownload OSFMount (v2.0.1001, 21 Mar 2018 at the time of writing) and follow the installation instructions, nothing special there.
Create automount scriptThe script will mount the drive if the letter is available and it uses its internal format command which can only format FAT32 at the moment. Adjust the settings to fit depending on your needs and available free RAM (check with Task Manager > Performance > Memory). Save in a system (e.g. "%WINDIR%\Create RAM Drive + TEMP directory.cmd") or user location.
@ECHO OFF SET RAMDISK_DRIVE=R: SET RAMDISK_SIZE=1G SET RAMDISK_LABEL=RAM Disk IF NOT EXIST "%RAMDISK_DRIVE%" ( "%PROGRAMFILES%\OSFMount\OSFMount.com" -a -t vm -s %RAMDISK_SIZE% -o format:"%RAMDISK_LABEL%" -m "%RAMDISK_DRIVE% MKDIR "%RAMDISK_DRIVE%\TEMP" )If you test run it in an elevated Command Prompt it should output like below:
"%WINDIR%\Create RAM Drive + TEMP directory.cmd" Creating device... Created device 0: R: -> VM image Formatting drive with volume label RAM Disk Notifying applications... Done.
Task SchedulerCreate a scheduled task in Task Scheduler (taskschd.msc), the important parts are to run At system startup and to Run whether user is logged on or not.
Finishing notesReboot and confirm RAM drive is there on startup.
If you intend to change your user TEMP and TMP environment variables to point to R:\TEMP with a small RAM drive you can run into all sorts of weird issues when installing large applications or with anything that takes large amounts of temporary disk space for operating like Android sdkmanager update or anything like that.
If you still want to go this way cause you think you know what you're doing, any time something weird happens like that happens I would remember to change your TEMP and TMP environment variables back to default %USERPROFILE%\AppData\Local\Temp, logoff and try the operation again.
I have never considered changing system's TEMP or TMP environment variables, just the user ones.