如何从Perl程序中设置cmd.exe窗口的大小?

时间:2010-02-05 13:07:22

标签: windows perl console cmd

我在Windows中运行了一个Perl脚本,显示屏幕很长的行。

我不想永久修复我的控制台大小。我只是希望它在这个脚本运行的时候很大。

有没有办法在这个窗口内运行的Perl脚本中定义控制台的大小?

2 个答案:

答案 0 :(得分:4)

您可以使用mode命令设置正在运行的控制台的控制台大小:

mode con lines=50 cols=200

更改只会持续到控制台窗口关闭。

答案 1 :(得分:3)

Win32::Consolesample program有一个可在我的Windows XP SP3上运行的调整大小演示。我没有在其他任何地方尝试过它。

此外,使用简单的GUI只包含文本框可能更容易。

以下是示例脚本中testWindow的改编:

use strict; use warnings;

use Win32::Console;

my $OUT = Win32::Console->new(STD_OUTPUT_HANDLE);
my $IN  = Win32::Console->new(STD_INPUT_HANDLE);
$IN->Mode(ENABLE_MOUSE_INPUT|ENABLE_WINDOW_INPUT);

$OUT->Size(180, 200);
my ($maxx, $maxy) = $OUT->MaxWindow;

$OUT->Cls;
$OUT->Cursor(-1, -1, -1, 0);

$OUT->FillAttr($BG_YELLOW|$FG_BLUE, $maxy * $maxx, 0, 0);
$OUT->FillChar('X', $maxy*$maxx, 0, 0);

$OUT->Window(1, 0, 0, $maxx, $maxy);

while ($maxx>1 and $maxy>1) {
    $maxx -= 5;
    $maxy -= 5;
    $OUT->Window(1, 0, 0, $maxx, $maxy);
    sleep 1;
}

$OUT->Window(1, 0, 80, 50);
$OUT->Cls;