I've downloaded Mydefrag today, and understand a bit the script language. I think understand you Poutnik, we need the SPACEHOGS boolean! When u want separate a zone like "?\windows\*" but there are SPACEHOG areas in that zone, u can not do it correctly, bcoz u can not use the /*SPACEHOG*/ like a boolean. Only u can use the long list what u wrote in the first code!
# MyDefrag v4.0
#
Title('Teljes C:\ optimalizációja (c) Pintér István 2009')
Description('A C meghajtó optimalizálása.')
Slowdown(/*SLOWDOWN*/)
Debug(0)
OtherInstances(exit)
WhenFinished(/*WHENFINISHED*/)
windowsize(maximized)
Language("Magyar")
VolumeSelect
Removable(no)
and Writable(yes)
and Mounted(yes)
and name("c:")
/*VOLUMES*/
VolumeActions
ReclaimMFTzone()
FileSelect
FileName("$mft")
/*EXCLUDE*/
FileActions
SortByName(Ascending)
forcedfill()
FileEnd
SetBeginOfZone(/*FREESPACE*/)
FileSelect
Directory(yes)
/*EXCLUDE*/
FileActions
SortByName(Ascending)
forcedfill()
FileEnd
FileSelect
ImportListFromBootOptimize()
/*EXCLUDE*/
FileActions
SortByImportSequence(Ascending)
forcedfill()
FileEnd
pause("")
SetBeginOfZone(/*FREESPACE*/)
FileSelect
fullpath("?:\Windows\*") and not (
DirectoryName("$RECYCLE.BIN") or DirectoryName("RECYCLED")
or DirectoryName("RECYCLER") or DirectoryName("$*")
or DirectoryName("Downloaded Installations") or DirectoryName("Ehome")
or DirectoryName("Fonts") or DirectoryName("Help")
or DirectoryName("I386") or DirectoryName("IME")
or DirectoryName("Installer") or DirectoryName("ServicePackFiles")
or DirectoryName("SoftwareDistribution") or DirectoryName("Speech")
or DirectoryName("Symbols") or DirectoryName("ie7updates")
or DirectoryName("dllcache")
or DirectoryName("Installshield Installation Information")
or DirectoryName("System Volume Information")
or DirectoryName("windows.old")
or FileName("*.7z") or FileName("*.arj") or FileName("*.avi")
or FileName("*.bak") or FileName("*.bup") or FileName("*.bz2")
or FileName("*.cab") or FileName("*.chm") or FileName("*.dvr-ms")
or FileName("*.gz") or FileName("*.ifo") or FileName("*.log")
or FileName("*.lzh") or FileName("*.mp3") or FileName("*.msi")
or FileName("*.old") or FileName("*.pdf") or FileName("*.rar")
or FileName("*.rpm") or FileName("*.tar") or FileName("*.wav")
or FileName("*.wmv") or FileName("*.vob") or FileName("*.z")
or FileName("*.zip")
)
/*EXCLUDE*/
FileActions
defragment()
forcedfill()
FileEnd
#pause("")
SetBeginOfZone(PlusPercentageOfDiskFree(5))
FileSelect
all
/*EXCLUDE*/
FileActions
defragment()
forcedfill()
FileEnd
VolumeEnd
The other problem is the hierarcy of the definied fileboolean elements in the zones.
There will usually be more than one FileSelect-FileActions-FileEnd structure inside a VolumeAction. This will create multiple zones, each zone with it's own items. Items will be placed in the first possible zone, in other words, if an item has been selected by a FileBoolean then it will automatically not be selected by the next FileBooleans.
Once u definied a set of elements u can not define a subset from those elements. And if the next zone fileboolean condition is that subset of elements u can not define it!