如何更改 Windows 控制台窗口的宽度?

Posted

技术标签:

【中文标题】如何更改 Windows 控制台窗口的宽度?【英文标题】:How can I change the width of a Windows console window? 【发布时间】:2010-09-16 11:22:57 【问题描述】:

是否可以通过编程或其他方式增加 Windows 控制台窗口的宽度?或者我是否需要创建一个外观和行为类似于控制台的包装程序?周围是否有任何程序可以做到这一点?我在开发中广泛使用 Cygwin,Windows 中的所有控制台窗口都有宽度限制,这对我来说似乎有点荒谬。

如果重要的话,我正在运行 Windows XP。

【问题讨论】:

【参考方案1】:

只需运行“mode cols,lines”即可更改当前控制台窗口的大小:

模式 120,60

将控制台窗口的大小调整为 120 列和 60 行

【讨论】:

正如我所发现的,多亏了这个答案,没有参数的运行模式将返回各种有用的信息,包括列和行。如果您只是想看看它是什么而不是改变它,这很有用。如果您需要调整命令输出的大小以适合用户的设置,您也可以使用 cscript 对其进行解析。 不幸的是,这也会将屏幕缓冲区大小设置为这些值(即禁用垂直滚动)。【参考方案2】:

您可以通过右键单击托盘图标并进入选项对话框来手动增加它。

Windows也有第三方终端模拟器,如Console:

【讨论】:

上个版本是2006年,不知道2.0b线稳定不?还是我应该使用 1.5 进行测试? 回答我自己的问题,2.0b 就是图片。所以我认为是的。似乎无论如何都在工作:-) 控制台真的很棒,一直在使用它与windoes GNU工具和git..几乎让我的windoes盒子感觉就像一个阅读操作系统......几乎;-)【参考方案3】:
system("mode 45, 20");

这是一个糟糕的解决方案,因为它禁用了垂直滚动。

这样更好:

system("mode CON: COLS=120");

【讨论】:

它是 stdlib.h 的一部分吗?【参考方案4】:

有一个窗口的api函数来设置宽度。这是一个tutu。 http://www.adrianxw.dk/SoftwareSite/Consoles/Consoles6.html

【讨论】:

【参考方案5】:

如果你右键单击命令窗口的标题栏并选择属性,你可以在布局选项卡中更改宽度

【讨论】:

哇,好多了。这就是我羞愧地挂起帽子的地方。这允许您为单个链接/程序设置默认值,但有没有办法设置通用默认值? 它允许您设置标题窗口的设置。如果你打开 cmd.exe 那么你可以设置它。它应该适用于大多数窗口然后打开。 是的,我发现在我将它设置在 cmd.exe 上之后,它似乎对我使用过的所有其他东西都有效。它似乎没有影响我在 .NET 中构建的控制台应用程序,因此我以相同的方式更改了属性,它似乎在构建之间仍然存在【参考方案6】:

如果您正在编写 C#,这里有一个对我有用的方法(来自this page 的底部)

static void setConsoleSize()
   
       System.Console.SetWindowPosition(0,0);   // sets window position to upper left
       System.Console.SetBufferSize(200,300);   // make sure buffer is bigger than window
       System.Console.SetWindowSize(122,54);   //set window size to almost full screen 
       //width - maxSet(127,57) (width, height)

       //System.Console.ResetColor(); //resets fore and background colors to default

     // End  setConsoleSize()

引自帖子:“我可以使用的最大控制台大小是 127 列和 57 行,因为这就是我的全部 屏幕分辨率将允许。重置您的屏幕分辨率,这将改变。

这只是为了满足您的需要而必须玩弄的那些东西之一 让它按你喜欢的方式显示。 "

【讨论】:

除了SetWindowPosition(),你也可以在PowerShell中使用它。【参考方案7】:

mode 

system("mode... 

解决方案对我不起作用,我无法设置布局而不会出现访问错误。

修复是关闭Cygwin,在开始菜单的图标上右击属性,编辑布局->窗口->高度,然后同意允许管理员权限保存设置。 (不以管理员身份运行)。

现在运行 Cygwin 时总是给我一个大窗口。

Windows 7 64 位。

【讨论】:

【参考方案8】:

要获得特定大小的所有未来控制台窗口,您可以创建 cmd.exe 的快捷方式,然后在快捷方式属性的布局选项卡上设置大小。

【讨论】:

【参考方案9】:

在布局选项卡的控制台属性中,您可以配置以下内容:

屏幕缓冲区大小 宽度

窗口大小 宽度

窗口大小宽度是每行可见的字符数。屏幕缓冲区大小是该行的size。例如,如果将窗口大小宽度设置为 100,将屏幕缓冲区大小宽度设置为 200,则需要使用滚动条查看大小在 100 到 200 之间的行的全部内容。超过 200 个字符的行将出现在更多不止一条线。如果您有很长的行并且想要将它们复制到文本文件中,这将非常有用。

同样的事情也适用于 Windows PowerShell

【讨论】:

【参考方案10】:

嘿,你们有没有想过从 Windows 命令提示符/控制台中启动和运行 Cygwin 的可能性?这就是我一直在做的事情。然后你可以对控制台的外观做任何你想做的事情,让它看起来很性感。

尝试从 cygwin 中获取 su 有时可能很困难,尤其是当您尝试使用提供的工具进行一些繁重的运算时。人们已经尝试过各种各样的事情,从 sudo SU for windows 到任何事情......当它可以像从你那里传递管理员凭据一样简单时,即使没有奇怪的 UAC 弹出窗口(如果你是管理员?) .您可以通过一个简单的批处理脚本来执行此操作。下面是我的 Cygwin 外观的屏幕截图,这也是从 Cygwin 的便携式版本运行的!没有注册表项和任何垃圾! 批处理文件将凭据传递给 bash,然后 bash 更改目录(请注意,需要双引号将此变量传递给 Cygwin colsole 以使其工作)

@echo off
setlocal enabledelayedexpansion
REM Changing working folder back to current directory
%~d0
CD %~dp0
REM Folder changed
bash --login -i -c "cd insert_directory_name_here && exec ./execution-file-here"
cls
exit 1

注意:上面示例中的 等括号不包含在批处理脚本中。 另请注意,Windows CMD 窗口正在将字符串传递给 cygwin 以解释为多个条件; cygwin 不会自己阅读引号,而是阅读它们之间的内容。 && 是说更改目录,当你执行脚本时 ./execution-file-here 当你到达那里时。

这是一个双重打击,您可以从 MS-Windows 窗口中启动 Cygwin 或类似 linux 的应用程序,甚至无需键入代码字母或打开控制台或任何东西。

我将此批处理文件保存在 /Cygwin/bin 目录中,并在桌面上创建一个 Windows 快捷方式链接。在快捷方式中,我可以对 cmd shell 窗口进行样式化。甚至达到透明度;-)

【讨论】:

【参考方案11】:

单击控制台框架左上角的图标(看起来像“C:\”的图标),然后选择“属性”。这使您可以自定义各种东西。 “布局”选项卡具有窗口的宽度。

【讨论】:

以上是关于如何更改 Windows 控制台窗口的宽度?的主要内容,如果未能解决你的问题,请参考以下文章

如何将控制台窗口的大小调整为设定的行数和列数?

应用程序窗口未聚焦时如何在 UWP 中更改\控制鼠标位置?

将c#console app转换为c#windows form app

将控制台应用程序转换为Windows应用程序

Jquery如何获取浏览器窗口宽度?

如何从 Windows 中没有控制台窗口的 C++ 应用程序中删除文件?