Yes, there are two things you can do.

1) Give up some time using SLEEP.
2) Start in a low priority using the DOS "START" built-in.

The second method is definately the better one.

As a general aside, normally you *want* your CPU to be at 100% while the script is running. If your CPU is running at less than 100% then it is underutilised and you've spent money on it that you didn't need to.

The only time you want to start to give up CPU time is when another process (usually an interactive one) needs it. Windows has at long last got a half-decent scheduler, so you should be able to leave it up to the system to organise CPU usage.

An 800KB file is pretty large - the ReadFile() UDF is probably highly inefficient with this size of file.

Unless you need to make multiple passes through the file I strongly recommend that you use basic KiXtart IO (OPEN/READ/CLOSE) to access the data rather than the udf. This will speed your script up quite a bit.