Erhöhen Sie die Puffergröße der Eingabeaufforderung mit einem Befehl

1

Ich kann die Größe eines Eingabeaufforderungsfensters wie folgt ändern:

'mode con:cols=920 lines=40'

Aber wie kann ich das Fenster in der Befehlszeile gleich groß halten, aber die Puffergröße erhöhen (die Bildlaufleisten verkleinern, wenn Sie mir folgen) ?

Ich verwende Windows 7, möchte aber einen Befehl, der in allen Windows-Versionen funktioniert. Es ist eine einfache Operation, also denke ich, dass wir okay sind.

Starkers
quelle

Antworten:

1

Der modeBefehl ändert nicht (direkt) die Größe des Fensters, sondern die Größe des Puffers. Wenn Sie die Zahlen auf einen Wert einstellen, der größer als das Fenster ist, werden bei Bedarf Bildlaufleisten erstellt. Wenn Sie eine kleinere Zahl als das Fenster festlegen, werden die Bildlaufleisten entfernt und das Fenster verkleinert.

Es gibt eine StackOverflow-Frage , die weitere Lösungen für eine differenziertere Steuerung über die Registrierung oder Programmierung bietet, wenn Sie interessiert sind.

Synetech
quelle
Was soll ich sagen, es vergrößert definitiv das Eingabeaufforderungsfenster! Na
ja
Wie gesagt, es passt die Fenstergröße nach Bedarf an den Puffer an. Das Gleiche gilt, wenn Sie die Puffergröße über das Dialogfeld " Eigenschaften " ändern . Sie müssen lediglich die Puffergröße ändern und dann die Fenstergröße auf die ursprüngliche Größe zurücksetzen . Es gibt keine Befehle, mit denen die Fenstergröße geändert werden kann. Daher müssen Sie einen der Tricks auf der SO-Seite anwenden. Sie können einen Registry-Hack, ein Tool eines Drittanbieters (z. B. conutils ) verwenden oder Ihr eigenes Programm kompilieren (z. B. VB , C # ).
Synetech
1

MODE CON: listet die Puffergröße auf, jedoch nicht die Fenstergröße.

MODE CON: cols=N1 lines=N2 Stellen Sie sowohl das Fenster als auch den Puffer auf die gleichen Abmessungen ein.

Sie möchten die Puffergröße erhöhen, ohne die Fenstergröße zu ändern.

Die StackOverflow-Antwort auf CMD: Festlegen der Pufferhöhe unabhängig von der Fensterhöhe zeigt, wie die Puffer- und Fenstergrößen unabhängig über PowerShell festgelegt werden.

Eine geringfügige Änderung legt die Puffergröße fest, ohne die Fenstergröße zu ändern:

@echo off
:conBufferSize  bufWidth  bufHeight
powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.width=%1;$B.height=%2;$W.buffersize=$B;}"

Beachten Sie, dass die Puffergröße größer sein muss als die aktuelle Fenstergröße.


AKTUALISIEREN

Unten finden Sie eine geänderte Version, die die aktuelle Fensterbreite und -höhe überprüft und die Puffergröße auf die Fenstergröße festlegt, wenn die angegebene Puffergröße zu klein ist.

@echo off
:conBufferSize  bufWidth  bufHeight
powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$S=$W.windowsize;$B.width=if (%1 -gt $S.width) {%1} else {$S.width};$B.height=if (%2 -gt $S.height) {%2} else {$S.height};$W.buffersize=$B;}"
dbenham
quelle
Das ändert die Fenstergröße.
Synetech
@Synetech - Ich sehe nicht, wie mein Code jemals die Fenstergröße ändern kann, da er nicht auf diese Attribute zugreift. Ich habe das oben Genannte getestet und es funktioniert perfekt für mich. Es ändert die Puffergröße und lässt die Fenstergröße unverändert.
Dbenham
Genau, wie ich in der letzten Zeile der Antwort gesagt habe - die ausgewählte Puffergröße muss größer als (tatsächlich größer als oder gleich) die Fenstergröße sein. Es funktioniert fehlerfrei mit ausreichend großem Puffer. Zusätzlicher PowerShell-Code kann verwendet werden, um die aktuelle Fenstergröße abzurufen und die Puffergröße anzupassen, wenn die ausgewählte Puffergröße zu klein ist.
Dbenham
Es ist wahrscheinlich einfacher, nur ein Drittanbieter-Tool oder ein kompiliertes Programm zu verwenden. Auf diese Weise kann die aktuelle Fenstergröße abgerufen und alles verarbeitet werden. Ich bin halb versucht, einen zusammen zu werfen. :-/
Synetech
@Synetech - Ich habe eine weitere Version hinzugefügt, die die Größe überprüft und gegebenenfalls ausgleicht.
Dbenham