MUCHAS GRACIAS por las respuestas ,y si hacertaste mi programa es un troyano heeheh , pense que sepodia hacer desde el Regedit porque vi un articulo como se ghacia pero en WinNT :
PendingFileRenameOperations Data type : REG_MULTI_SZ Value data: \??\c:\winupdt.exe !\??\c:\windows\winupdt.exe
poniendo esa clave en el registro pero no me sirve en XP si alguien sabe como hacerlose lo agradezco mucho ahora intentando de la manera que me sugerio FroSeck tengo una duda :
rem Matamos el proceso del archivo antiguo
tskill /a miarchivo
rem Lo eliminamos
del /f /q %systemroot%\miarchivo.exe
rem Lo movemos
move c:\miarchivo.exe %systemroot%\miarchivo.exe
rem Volvemos a ejecutarlo
star %systemroot%\miarchivo.exe
rem Eliminamos el bat
del /f /q %0
*
en donde dice "star" no es "start" (la verdad nose mucho de bash y pienso que talves fue un error de typeo ) y por ultimo cuando pones "del /f /q %0" cual es el archivo que borra? que jhace el %0 ?? esoe es todo y Muchisimas gracias por la ayuda