I try it, and i love it.
Very good performance, computer more responsive.
Thank you.
You're welcome. Thanks to Jeroen for giving us the power of scripting!

I tried your script and I did get better performance from my system drive. I do have a some questions if you don't mind:
Thanks for the questions. Sorry for not replying sooner, I've been very busy.
1. How often should this script be run on a system drive (Daily, Weekly or Monthly) ?
If files are frequently added and deleted then run it weekly, else run it monthly.
2. Will the other bundled scripts that are installed with MyDefrag (Eg. SystemDiskDaily.MyD) undo the optimizations that your script performs on a system drive?
Yes, zone ordering and file placement are different.
3. Do you recommend running your script on non-system (Data) disks? -If not, do you intend on creating a data disk version of your script? -Or do find the bundled data disk scripts (Eg. DataDiskDaily.MyD) to be sufficient?
I haven't tried running the script on data volumes, but the script should still give good performance because it places small files near the beginning of the volume, which gives quick access to those files.
I use specific scripts for each of my data partitions.
For example, the script below is for my documents & programs partition:
Title('Data Disk Monthly D')
Description("Documents & Programs")
/* Write the header to the logfile. See the "Settings.MyD" file for the
definition of the "LogHeader" string. */
WriteLogfile("MyDefrag.log","LogHeader")
/* Select and process the volumes one by one. */
VolumeSelect
Name("D:")
VolumeActions
/* Write the "before" statistics to the logfile. See the "Settings.MyD" file
for the definition of the "LogBefore" string. */
AppendLogfile("MyDefrag.log","LogBefore")
/* Zone 1: Place the MFT and some other special NTFS files. */
FileSelect
SelectNtfsSystemFiles(yes)
FileActions
PlaceNtfsSystemFiles(Ascending, Maximum(16MB - MftSize, RoundUp(MftSize * 0.02,1MB)))
FileEnd
/* Zone 2: Directories. */
FileSelect
Directory(yes)
FileActions
SortByName(Ascending)
FileEnd
MakeGap(RoundUp(ZoneBegin,1MB))
/* Zone 3: Music. */
FileSelect
FullPath("D:\Music","*")
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 4: Movies. */
FileSelect
FullPath("D:\Movies","*")
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 5: Large document files. */
FileSelect
FullPath("D:\Documents","*") AND Size(10MB,0)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 6: Large program files. */
FileSelect
FullPath("D:\Programs","*") AND Size(30MB,0)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 7: Program files. */
FileSelect
FullPath("D:\Programs","*")
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 8: Large temp files. */
FileSelect
FullPath("D:\Temp","*") AND Size(30MB,0)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 9: Temp files. */
FileSelect
FullPath("D:\Temp","*")
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 10: All other files. */
FileSelect
all
FileActions
SortByName(Ascending)
FileEnd
/* Write the "after" statistics to the logfile. See the "Settings.MyD" file
for the definition of the "LogAfter" string. */
AppendLogfile("MyDefrag.log","LogAfter")
VolumeEnd
/* Write the footer to the logfile. See the "Settings.MyD" file for the
definition of the "LogFooter" string. */
AppendLogfile("MyDefrag.log","LogFooter")
Another example, the script below is for my videos partition:
Title('Data Disk Monthly Videos')
Description("Videos")
/* Write the header to the logfile. See the "Settings.MyD" file for the
definition of the "LogHeader" string. */
WriteLogfile("MyDefrag.log","LogHeader")
/* Select and process the volumes one by one. */
VolumeSelect
CommandlineVolumes()
VolumeActions
/* Write the "before" statistics to the logfile. See the "Settings.MyD" file
for the definition of the "LogBefore" string. */
AppendLogfile("MyDefrag.log","LogBefore")
/* Zone 1: Place the MFT and some other special NTFS files. */
FileSelect
SelectNtfsSystemFiles(yes)
FileActions
PlaceNtfsSystemFiles(Ascending, Maximum(16MB - MftSize, RoundUp(MftSize * 0.02,1MB)))
FileEnd
/* Zone 2: Directories. */
FileSelect
Directory(yes)
FileActions
SortByName(Ascending)
FileEnd
MakeGap(RoundUp(ZoneBegin, 1MB))
/* Zone 3: Large files. */
FileSelect
Size(300MB,0)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 4: Large files. */
FileSelect
Size(200MB,300MB)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 5: Large files. */
FileSelect
Size(110MB,200MB)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 6: Large files. */
FileSelect
Size(20MB,110MB)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 7: Large files. */
FileSelect
Size(4MB,20MB)
FileActions
MoveToEndOfDisk()
FileEnd
/* Zone 8: All other files. */
FileSelect
all
FileActions
Defragment()
FastFill(WithShuffling)
FileEnd
/* Write the "after" statistics to the logfile. See the "Settings.MyD" file
for the definition of the "LogAfter" string. */
AppendLogfile("MyDefrag.log","LogAfter")
VolumeEnd
/* Write the footer to the logfile. See the "Settings.MyD" file for the
definition of the "LogFooter" string. */
AppendLogfile("MyDefrag.log","LogFooter")
I haven't had much time to experiment with data disk scripts. Basically I just partition the zones by folder and file size, placing small files near the beginning and large files near the end of the volume.