2017-08-22 1 views
0

Parfois j'utilise la commande "dir | more" d'une fenêtre cmd et je vois tout le contenu d'un dossier, un écran une fois. maintenant, mon sous-programme (c'est un cycle simple FOR), montre des données d'un fichier TXT avec une série de "écho" s.Comment afficher l'écran de sortie d'un lot?

puisque les données sont beaucoup plus de 25 lignes, puisque je ne veux pas utiliser la barre de défilement verticale, comment je peux faire un « plus » -comme commande, qui permet la pagination correcte de la production, en tenant compte des lignes numériques disponible dans cmd fenêtre personnalisée?

merci beaucoup

+3

'plus" txtfile.txt "'. Si vous avez quelque chose de différent à l'esprit, éditez votre question et postez du code s'il vous plaît. – rojo

+0

Y a-t-il une raison pour laquelle 'more' ne peut pas être utilisé? Pourquoi la roue doit-elle être réinventée? – lit

Répondre

1

d'accord avec rojo, la solution est aussi simple que son commentaire. Sans plus d'informations (seulement deviner) si vous voulez contrôler les lignes en écho, quelque chose comme ça peut être un bon point de départ.

@echo off 
setlocal EnableExtensions EnableDelayedExpansion 
echo Calling Powershell, wait... 
for /F "usebackq tokens=1-4 delims=, " %%1 in (`powershell -Command "write-host $host.ui.rawui.BufferSize,$host.ui.rawui.WindowSize;"`) do set/a bufCols=%%1, bufLines=%%2, winCols=%%3, winLines=%%4 

set/a cnt=0, winLines-=1 
for /f "tokens=*" %%a in (input.txt) do (
    set/a cnt+=1, pauser=cnt%%winLines 
    echo %%a 
    if !pauser! equ 0 pause 
) 
endlocal 
exit/B