1) put your command to start sqlldr in separate cmd file with exit
command at the last line of it ( for instance load.cmd )
2) run your cmd file by using start command as : start load.cmd
3) After sqlldr is finisihed your cmd window will be automatically closed
->the first line of my batch is :
sqlldr80 userid=scott/tiger@jd direct=true data=c:\temp\Dm_famille.dat control=c:\temp\Dm_familled.ctl errors=100000000 log=c:\temp\DM_familledirect.log bad=c:\temp\DM_famille.bad bindsize=1000000 readsize=1000000
->the second :
I have copied your batch settings and everything works fine. The only difference I see is that you are using sqlloader from oracle 8 (mine is from 8i (8.1.7)). This is the only explanation I have for the time being.
Another thing you should try is to create a very simple batch file for data loading and see what happens.