2008-12-15 8 views
4

Existe-t-il une fonction qui efface la dernière ligne dans l'invite de commande? Je ne veux pas dire "cls" - il efface tout l'écran, je veux supprimer seulement la dernière ligne.Comment effacer la dernière ligne de la ligne de commande Windows?

par exemple. Je cherche un dossier dans un dossier et ses sous-dossiers et je veux imprimer dans le dossier courant de cmd - mais je veux le réécrire, quand le dossier change, pas simplement ajouter à la fin. Je sais, c'est juste une banalité, mais je suis intéressé comment pourrait-il être fait.

+0

Je crois que vous pouvez produire le backspace, Si vous n'êtes pas passé à une nouvelle ligne. –

Répondre

1

Non, il n'y a pas de commande pour ce faire

+0

Malheureusement, vous avez probablement raison: - \ – Dungeo

4

Laquelle est cette dernière ligne?
Celui juste au-dessus de l'invite?
Si c'est ce que vous voulez dire alors non, il n'y a aucun moyen d'effacer juste cela en utilisant l'invite. Si vous parlez le faire programatically, essayez d'utiliser "\r" comme ceci:

print("\rNew text in the line"); 
2

Si vous utilisez les pilotes d'écran ANSI, vous pouvez simplement sortie "\ r", votre nouvelle ligne, puis 'ESC', '[', 'K' qui va effacer à la fin de la ligne.

Mais une chose à surveiller, vous devez limiter la longueur de votre sortie à la largeur de l'écran prévu pour que les lignes n'enveloppent pas, comme

c:\directory\really_big_name_too_long_..._so_Ive_put_some_ellipses_in.txt 

Dans ce cas, vous pouvez probablement tout pad à 79 caractères de toute façon et cela fonctionnera avec le caractère "\ r", indépendant du pilote ANSI.

1

Cherchez-vous des Ctl-c?

1

Vous pouvez utiliser des crochets pour enregistrer la précédente, puis pas enregistrer la ligne que vous souhaitez supprimer à l'aide de la commande TYPE: (Ceci est juste un exemple)

(
echo (Previous Outputs) 
(This may happen as many times as needed) 
) >> C:\file.txt 
set /P thing= 
cls 
type C:\file.txt 
pause