10

最近、プログラムを実行している CMD ウィンドウのサイズを で制御できることを知りましたmode x,yただし、これによりバッファサイズが設定され、ウィンドウが画面サイズに一致または最大になるように調整されることに最近気付きました。

ウィンドウサイズに使用mode 100,50したいのですが、より大きなバッファを保持したい-少なくとも開発のためにmode 100,9999.

これを行う方法はありますか?

4

6 に答える 6

27

バッファとウィンドウのサイズを個別に制御できるネイティブ バッチ コマンドはないと思います。.NET は両方を制御できますが、VBScript や JScript がその機能にアクセスできるとは思いません。しかし、powershell では :-) Windows PowerShell コンソールの幅を広げるにはどうすればよいですか? を参照してください。

ありがたいことに、PowerShell の終了時に新しい設定が CMD ウィンドウに保持されます。

ウィンドウ サイズが常にバッファ サイズ以下であることが重要です。簡単にするために、最初に MODE を使用してウィンドウとバッファーの両方を目的のウィンドウ サイズに設定し、次に powershell を使用してバッファー サイズを設定します。

以下は、サイズをパラメーターとして受け取る単純なconSize.batハイブリッド バッチ/PowerShell スクリプトです。

@echo off
:conSize  winWidth  winHeight  bufWidth  bufHeight
mode con: cols=%1 lines=%2
powershell -command "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.width=%3;$B.height=%4;$W.buffersize=$B;}"

希望のサイズを取得するには、単に使用します

call conSize 100 50 100 9999
于 2012-11-12T20:52:06.560 に答える
2

特にこれを行う「ConSetBuffer」バイナリが利用可能であり、確実に動作することがわかりました。これと関連するコンソール ユーティリティは、このページの「conutils.zip」リンクから入手できます。

于 2012-12-10T22:37:06.367 に答える
1

ウィンドウとバッファを「最大化」できるWindows用の小さなアプリケーションを作成しました。カスタム値でパラメーターを渡すことができるように簡単に拡張できます。

于 2013-11-02T00:18:36.443 に答える
0

ここで別のバリアント:

/*
@echo off & mode 100,50
set "cscfile="
set Pathfile="%WinDir%\Microsoft.NET\Framework\csc.exe"
for /f "delims=" %%a in ('dir /b /a-d /s %PathFile%') do set "cscfile=%%a"
if defined cscfile (
  %cscfile% /nologo /out:"%~0.exe" %0
) else exit /b
"%~0.exe"
del "%~0.exe" 
cmd /k
*/

using System;

class Program
  {
     static void Main()
     { 
        Console.SetBufferSize(100, 9999); 
        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine("Current Logged UserName: " + Environment.UserName);
        Console.ResetColor();
        Console.WriteLine("[Enter] to continue");
        Console.ReadLine();
     }
  }
于 2012-11-13T15:48:52.477 に答える
-1

ウィンドウ サイズに影響を与えずにバッファ サイズを変更する方法を見つけました。バッチがどのように機能するかの欠陥のおかげで機能しますが、仕事は完了します。

mode 648 78 >nul 2>nul

それはどのように機能しますか?このコマンドには構文エラーがあります。「mode 648, 78」である必要があります。バッチの動作方法により、バッファ サイズは最初に 648 にサイズ変更され、次にウィンドウのサイズ変更が行われますが、構文エラーのために終了しません。ほら、バッファサイズが調整され、ウィンドウサイズは同じままです。これは醜いエラーを生成するので、これを取り除くには ">nul 2>nul" を追加するだけで完了です。

于 2014-05-15T10:04:49.147 に答える