Boot time script examples
Last updated on
Check the following examples to learn how to perform typical boot time defragmentation tasks.
Default custom boot time script
By default UltraDefrag uses the following script as the custom boot time script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | @echo off :: :: UltraDefrag - a powerful disk defragmenter for Windows. :: :: ud-boot-time-custom.cmd - custom script for boot time defragmentation. :: :: Visit https://en.wikibooks.org/wiki/Windows_Batch_Scripting :: for general information about the script syntax. :: :: Refer to the UltraDefrag CLI section of UltraDefrag documentation :: at https://https://ultradefrag.net/support/ultradefrag-cli/ :: for detailed information about the `udefrag` command and environment :: variables controlling its behaviour. :: :: Please note that you have to save this file in Unicode :: (UTF-16 / UCS-2 LE BOM) encoding. :: :: For syntax highlighting the Notepad++ editor can be used. :: The latest version of it can be downloaded for free from :: http://www.notepad-plus-plus.org/ :: :: Below is a sample script. It defragments system files, including :: registry, paging and hibernation files. Feel free to adjust it :: to make it more suitable for your needs, replace it entirely :: or keep as is. :: turn the boot time defragmentation off for subsequent boots boot-off set UD_IN_FILTER=*windows*;*winnt*;*ntuser*;*pagefile.sys;*hiberfil.sys set UD_EX_FILTER=*temp*;*tmp*;*dllcache*;*ServicePackFiles*;*.log;*Windows.old* set UD_EX_FILTER=%UD_EX_FILTER%;*\Windows\servicing\* ; exclude big fragments which rarely benefit from defragmentation set UD_FRAGMENT_SIZE_THRESHOLD=20MB :: on solid state drives exclude slightly fragmented content as well set UD_SSD_FRAGMENTS_THRESHOLD=20 ; uncomment the following line to increase amount of debugging output ; set UD_DBGPRINT_LEVEL=DETAILED ; uncomment the following line to save debugging information to a log file ; set UD_LOG_FILE_PATH=%UD_INSTALL_DIR%\logs\ud-boot-time.log udefrag %SystemDrive% exit |
Optimization of disks
If you are going to optimize your disks using the custom boot time script, consider to set the UD_SSD_DEFRAGMENT_AND_TRIM_ONLY
environment variable prior to the disks optimization, especially if you have solid state drives (SSD) installed in your system. This option tremendously shortens SSD optimization time without any loss of optimization efficiency. Also it prolongs the life span of SSD.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | @echo off :: :: This script performs the full optimization :: of all the available non-removable disks :: except solid state drives (SSD) for which :: it performs defragmentation and trimming only. :: :: Please note, you have to save this script :: in Unicode (UTF-16 / UCS-2 LE BOM) encoding. :: :: turn the boot time defragmentation off for subsequent boots boot-off :: skip slightly fragmented files on SSD set UD_SSD_FRAGMENTS_THRESHOLD=20 :: during SSD optimization defragment and trim the disk only set UD_SSD_DEFRAGMENT_AND_TRIM_ONLY=1 udefrag -o --all-fixed :: pass control back to the Windows boot process exit |
Exclusion of files from defragmentation
Temporary files, archives and multimedia files usually do not affect system performance and thus should be excluded from defragmentation to shorten the disk processing time.
You can easily exclude all of them using the UD_EX_FILTER
environment variable, the same way as in the automatic defragmentation scripts:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | @echo off :: :: This script excludes temporary files, archives, :: multimedia files and big fragments from defragmentation :: and then defragments all the available non-removable disks. :: :: Please note, you have to save this script :: in Unicode (UTF-16 / UCS-2 LE BOM) encoding. :: :: turn the boot time defragmentation off for subsequent boots boot-off :: exclude temporary files set UD_EX_FILTER=*system volume information*;*temp*;*tmp*;*recycle* set UD_EX_FILTER=%UD_EX_FILTER%;*dllcache*;*ServicePackFiles*;*.log set UD_EX_FILTER=%UD_EX_FILTER%;*Windows.old* :: exclude archives set ARCHIVE_PATTERNS=*.7z;*.7z.*;*.arj;*.bkf;*.bz2;*.bzip2;*.cab;*.cpio;*.deb set ARCHIVE_PATTERNS=%ARCHIVE_PATTERNS%;*.dmg;*.gz;*.gzip;*.lha;*.lzh;*.lzma set ARCHIVE_PATTERNS=%ARCHIVE_PATTERNS%;*.rar;*.rpm;*.swm;*.tar;*.taz;*.tbz set ARCHIVE_PATTERNS=%ARCHIVE_PATTERNS%;*.tbz2;*.tgz;*.tpz;*.txz;*.xar;*.xz set ARCHIVE_PATTERNS=%ARCHIVE_PATTERNS%;*.z;*.zip set UD_EX_FILTER=%UD_EX_FILTER%;%ARCHIVE_PATTERNS% :: exclude multimedia files set AUDIO_PATTERNS=*.aif;*.cda;*.flac;*.iff;*.kpl;*.m3u;*.m4a;*.mid set AUDIO_PATTERNS=%AUDIO_PATTERNS%;*.mp3;*.mpa;*.ra;*.wav;*.wma set VIDEO_PATTERNS=*.3g2;*.3gp;*.asf;*.asx;*.avi;*.flv;*.mov;*.mp4 set VIDEO_PATTERNS=%VIDEO_PATTERNS%;*.mpg;*.rm;*.srt;*.swf;*.vob;*.wmv set UD_EX_FILTER=%UD_EX_FILTER%;%AUDIO_PATTERNS%;%VIDEO_PATTERNS% :: exclude big fragments set UD_FRAGMENT_SIZE_THRESHOLD=20MB :: defragment all the available non-removable disks udefrag --all-fixed :: pass control back to the Windows boot process exit |
Exclusion of disks from defragmentation
If you want to exclude certain disks from defragmentation, you can easily do it using the UD_EX_FILTER
environment variable:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @echo off :: :: This script defragments all the available :: non-removable disks except the disk H: :: :: Please note, you have to save this script :: in Unicode (UTF-16 / UCS-2 LE BOM) encoding. :: :: turn the boot time defragmentation off for subsequent boots boot-off set UD_EX_FILTER=%UD_EX_FILTER%;H:\* udefrag --all-fixed :: pass control back to the Windows boot process exit |
Also you can easily exclude disks having certain fragmentation level:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @echo off :: :: This script performs the full optimization :: of all the available non-removable disks :: having fragmentation level above 20%. :: :: Please note, you have to save this script :: in Unicode (UTF-16 / UCS-2 LE BOM) encoding. :: :: turn the boot time defragmentation off for subsequent boots boot-off set UD_FRAGMENTATION_THRESHOLD=20 udefrag -o --all-fixed :: pass control back to the Windows boot process exit |
Automatic shutdown after the job completion
You can easily shut the computer down automatically after the job completion. This is especially useful when you perform an operation which takes a lot of time, for instance, the disk optimization:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @echo off :: :: This script optimizes the system disk :: and then shuts the computer down. :: :: Please note, you have to save this script :: in Unicode (UTF-16 / UCS-2 LE BOM) encoding. :: :: turn the boot time defragmentation off for subsequent boots boot-off :: optimize the system disk udefrag -o %SystemDrive% :: shut the computer down when the disk optimization finishes shutdown |