Ты не можешь Обычно этого можно добиться, добавив в файл символ возврата каретки (0x0D), который вернет курсор к первому столбцу в той же строке. Но в этом случае это не работает; ЧР просто молча едят.
Кроме того, получить CR там довольно сложно и, по крайней мере, здесь задействован текстовый редактор. Я бы посоветовал вам написать небольшую утилиту, которая сделает это за вас, на самом деле это не очень сложно. Может пригодиться следующая небольшая программа на C (если вам не нужен Unicode):
#include <stdio.h>
int main(int argc, char* argv[]) {
if (argc < 2) return 1;
printf("\r%s", argv[1]);
}
Он не делает ничего, кроме печати символа CR, а затем текста, который вы указываете в качестве первого аргумента. Использование следующим образом:
@echo off
<nul set /P X=Step 1
pause>nul 2>nul
over.exe "Step 2"
Последняя строка - это вызов этой программы. Вторая строка - это обычная идиома для печати текста без разрывов задней строки (что важно в этом случае, потому что в противном случае вы не можете перезаписать строку). Вы можете также использовать вышеуказанную программу в этом месте.
Слегка хакерский способ, но единственный, в котором вы можете быть уверены, где вы окажетесь, - это использовать cls
до вашего шага вывода. Будет мерцать, но так вы всегда пишете в верхнем левом углу. И ударить все, что было видно в консоли (вот почему я бы не рекомендовал это); большинству пользователей это не нравится.