1: Faça com que o FIX.bat exclua o arquivo Start.bat antes de escrevê-lo --- pois ele continua anexando a ele, assim fica mais e mais longo. Provavelmente é por isso que você está vendo isso acontecer várias vezes.
2: renomeie "start.bat" para outra coisa, para evitar qualquer confusão.
3: Em vez de "call start.bat", simplesmente "start.bat" porque você quer garantir que o fix.bat não seja mantido aberto pelo CMD, e você não quer continuar a rodá-lo de qualquer maneira.
4: no start.bat, altere mova fix.bat C: \ users para mova o fix.bat C: \ users || eco MOVE FAILED
O "||" operador significa "Se o movimento falhou, faça o eco"
Você tem que escapar do | personagens: echo move fix.bat C: \ usuários > > qstart.bat ^ | ^ | eco MOVE FAILED