No puedes Por lo general, puede lograr este tipo de cosas al incluir un carácter de retorno de carro (0x0D) en el archivo que colocará el cursor nuevamente en la primera columna de la misma línea. Pero en este caso no funciona; El CR se come en silencio.
Además, introducir el CR allí es un poco complicado y al menos aquí involucra un editor de texto. Te sugiero que escribas un pequeño programa de utilidad que haga esto por ti, en realidad no es muy difícil. El siguiente pequeño programa en C podría ser suficiente (si no necesita Unicode):
#include <stdio.h>
int main(int argc, char* argv[]) {
if (argc < 2) return 1;
printf("\r%s", argv[1]);
}
No hace más que imprimir un carácter CR y luego el texto que especifique como primer argumento. Uso de la siguiente manera:
@echo off
<nul set /P X=Step 1
pause>nul 2>nul
over.exe "Step 2"
La última línea es la llamada a ese programa. La segunda línea es el lenguaje de lote normal para imprimir texto sin un salto de línea final (lo cual es importante en este caso porque de lo contrario no podría sobrescribir la línea). Sin embargo, también podría usar el programa anterior en ese lugar.
Una manera un poco hacky, pero la única en la que puede estar seguro de dónde terminará, sería usarla cls
antes de la salida de su paso. Parpadeará, pero de esa manera siempre escribes en la esquina superior izquierda. Y apunte todo lo que estaba visible en la consola (por eso no lo recomendaría); A la mayoría de los usuarios no les gusta demasiado.