Tu ne peux pas. Habituellement, vous pouvez réaliser ce genre de chose en incluant un caractère de retour chariot (0x0D) dans le fichier qui replacera le curseur dans la première colonne de la même ligne. Mais dans ce cas, cela ne fonctionne pas; le CR est mangé en silence.
De plus, obtenir le CR là-dedans est un peu délicat et au moins ici impliqué un éditeur de texte. Je vous suggère d'écrire un petit programme utilitaire qui fera cela pour vous, ce n'est en fait pas très difficile. Le petit programme C suivant peut suffire (si vous n'avez pas besoin d'Unicode):
#include <stdio.h>
int main(int argc, char* argv[]) {
if (argc < 2) return 1;
printf("\r%s", argv[1]);
}
Il ne fait rien de plus que d'imprimer un caractère CR, puis le texte que vous spécifiez comme premier argument. Utilisation comme suit:
@echo off
<nul set /P X=Step 1
pause>nul 2>nul
over.exe "Step 2"
La dernière ligne est l'appel à ce programme. La deuxième ligne est l'idiome de lot normal pour l'impression de texte sans rupture de ligne de fin (ce qui est important dans ce cas car sinon vous ne pourriez pas écraser la ligne). Vous pouvez tout aussi bien utiliser le programme ci-dessus à cet endroit.
Une manière légèrement hacky, mais la seule où vous pouvez être sûr où vous vous retrouvez, serait d'utiliser cls
avant votre sortie pas à pas. Scintillera mais de cette façon, vous écrivez toujours en haut à gauche. Et clobber tout ce qui était visible dans la console (c'est pourquoi je ne le recommanderais pas); la plupart des utilisateurs n'aiment pas trop ça.