Boot time script examples

Last updated on Jul 3, 2021

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
49
@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 Boot time defragmentation chapter of the UltraDefrag
:: Handbook for detailed information about the supported commands
:: and environment variables controlling their behaviour. You should
:: have received the handbook along with this program, if not, you can
:: find it at the official UltraDefrag website (https://ultradefrag.net/)
::
:: 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*

; exclude big fragments which rarely benefit from defragmentation

set UD_FRAGMENT_SIZE_THRESHOLD=20MB

; if your system drive is an SSD uncomment the following

; line to exclude slightly fragmented content as well
; set UD_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

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